Индексирование и сопоставление данных журнала с помощью solr 6

В настоящее время я использую 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}

И я попытался использовать загрузку 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}]}

person Moses Liao GZ    schedule 22.06.2016    source источник


Ответы (1)


Похоже, вы хотите извлечь чистые данные из журналов, которые можно индексировать и искать без какой-либо двусмысленности. Почему бы вам не попытаться проанализировать свои данные, создав custom Analyzer, который использует регулярное выражение для фильтрации данных для вас. Я настоятельно рекомендую solr.PatternTokenizerFactory удалить символ вертикальной черты из вашего Text . Кроме того, вы можете использовать вкладку «Анализ» в solr для исчерпывающего анализа того, как ваши данные журнала были обработаны Analyzer. Для закодированного текста, например, в поле Invalid UserAgent, вы можете использовать ASCII Folding filter factory для индексации закодированных символов. И вам также может понадобиться токенизировать данные по точкам, я не знаю, является ли это вашим требованием или нет. В ваших данных PatternTokenizer делает свое дело, и если вам все еще нужно внести дополнительные уточнения, вы можете использовать solr.WordDelimeter для лучшей настройки вашего индекса. Может быть, я отредактирую это решение с некоторыми настройками анализатора для вас :)

person Saurabh Chaturvedi    schedule 27.06.2016
comment
я думаю, что нашел лучшее решение. Я получаю свой nlog для отправки журналов в формате json. Лучше так - person Moses Liao GZ; 01.07.2016
comment
Вы хотите сказать, отформатировать его только перед отправкой и поместить в JSON, верно? Да, это было бы здорово. - person Saurabh Chaturvedi; 01.07.2016