使用solr 6索引和映射日志数据

Mos*_* GZ 7 solr6

目前我正在使用solr 6,我想索引日志数据,如下所示:

2016-06-22T03:00:04Z | INFO | ip-10-11-0-241 | 1301 | DreamRocket.Game.ServiceInterface.GameCredentialsAuthProvider | DreamRocket.Game.ServiceInterface.GameCredentialsAuthProvider.CheckValidGameDataRequestFilter | Invalid UserAgent =%E3%83% 94%E3%82%B3/1.07.41149 CFNetwork/758.2.8 Darwin/15.0.0,PlayerId = player_a2a7d1a4-0a31-4c4d-b5bf-10be67dc85d6 |

我不确定如何通过管道分离数据.我在Nlog中使用的布局就是这个.

${date:universalTime=True:format=yyyy-MM-ddTHH\:mm\:ssZ}|${level:uppercase=true}|${machinename}|${processid}|${logger}|${callsite:className=true:methodName=true}|${message}|${exception:format=tostring}${newline}
Run Code Online (Sandbox Code Playgroud)

我尝试使用CSV上传,但solr给了我以下的json返回.无法进行查询.请帮忙

  "responseHeader":{
    "status":0,
    "QTime":77,
    "params":{
      "q":"*:*",
      "indent":"on",
      "wt":"json",
      "_":"1466745065000"}},
  "response":{"numFound":8,"start":0,"docs":[
      {
        "id":"b28049bb-d49e-4b4d-80db-d7d77351527b",
        "2016-06-23T02_37_18Z_INFO_web.chubi.development1_6326_DreamRocket.Game.ServiceInterface.GameCredentialsAuthProvider_DreamRocket.Game.ServiceInterface.GameCredentialsAuthProvider.CheckValidGameDataRequestFilter_Invalid_UserAgent_PIKO_0.00.41269_CFNetwork_711.5.6_Darwin_14.0.0":["2016-06-23T02:37:28Z|INFO|web.chubi.development1|6326|DreamRocket.Game.ServiceInterface.GameCredentialsAuthProvider|DreamRocket.Game.ServiceInterface.GameCredentialsAuthProvider.CheckValidGameDataRequestFilter|Invalid UserAgent=PIKO/0.00.41269 CFNetwork/711.5.6 Darwin/14.0.0"],
        "_PlayerId_player_407defcf-7032-4ef4-81a6-91bb62b9150b_":[" PlayerId=player_905266b2-9ce3-4fa1-b0a7-4663b9509731|"],
        "_version_":1537919142165741568}]}
Run Code Online (Sandbox Code Playgroud)

Cha*_*abh 2

看起来您想从日志中提取干净的数据,这些数据可以毫无歧义地进行索引和搜索。您为什么不尝试创建一个custom Analyzer使用正则表达式来为您过滤数据的方法来分析您的数据。我强烈建议solr.PatternTokenizerFactory从您的 Text 中删除管道字符。此外,您还可以使用 solr 中的“分析”选项卡进行详尽的分析,了解分析器如何处理您的日志数据。对于编码文本,例如 Invalid UserAgent 字段,您可以使用它ASCII Folding filter factory来索引编码字符。而且您可能还需要在点处标记数据,我不知道这是否是您的要求。在你的数据中,PatternTokenizer 可以解决问题,如果你仍然需要做进一步的细化,你可以使用 solr.WordDelimeter 更好地调整你的索引。也许我会为您使用一些分析器设置来编辑此解决方案:)