0

検索クエリのヘルプが必要です!

キバナに「n」個以下のメッセージがあり、メッセージフィールドの下の「arnold-123-20」文字列のみを抽出したいのに対し、ハイフン(-)は検索で無視され、タイムスタンプでも数値(20)が取得されます一致しましたが、これは間違っています。無視する必要があります。

message:Oct 17 01:26:20 arnold-123-20.us.com arnold: [INFO]- Successful

Kibana UI での検索クエリ:

message:"arnold" AND message:"123-20" AND message:'Successfully'
4

1 に答える 1

0

標準の Elasticsearch トークナイザーは、単語の境界で壊れます。-文字は単語境界と見なされます。したがって、内部的に ES は次のように保存messageされます[oct,17,01,26,20(2),arnold(2),123,us,com,info,successful](基本的には、用語 + 頻度のベクトルであり、用語の順序は無視されます)。

データ内のトークンを認識するカスタム トークナイザーを作成し、それを使用してデータのインデックスを再作成する必要があります。その後、検索が機能する可能性があります。

より良い解決策は、logstash を使用して特定の種類のメッセージを解析し、データをさまざまなフィールドに保存することです。たとえば、arnold-123-20 has hostPart、us.com as hostDomain、 arnold-123-20.us.com as を保存できますfullHost。また、さまざまなフィールドを としてマークするインデックス テンプレートを追加する必要がありますnot_analyzed

于 2016-10-17T13:56:56.343 に答える