2016-06-22 2 views
7

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

ответ

2

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

+0

Думаю, я нашел лучшее решение. Я получаю свой nlog для отправки журналов через json-формат. Лучше так –

+0

Вы хотите сказать, что форматировать его перед отправкой и поставить в JSON? Да, это было бы здорово. –

Смежные вопросы