Kibanaのログメッセージで角かっこをフィルタリングするのに苦労しています。私がメッセージを持っているとしましょう:
[BOOK] The Book 32 was sold
Exception on buying BOOK
そして、正確に持つメッセージのみをフィルタリングしたい[BOOK]
(したがって、最初のメッセージのみを取得する必要があります)。
私は考えられるあらゆる種類のエスケープでフリーテキストをフィルタリングしようとしました:
[BOOK]
"[BOOK]"
\[BOOK\]
"\[BOOK\]"
\\[BOOK\\]
また、メッセージフィールドでフィルタリングしてみました。
message: [BOOK]*
message: "[BOOK]*"
message: \[BOOK\]*
message: "\[BOOK\]*"
しかし、Kibanaは角かっこを単に無視しているようで、常に両方のメッセージを表示し、BOOK
単語のみを強調表示します。
どうすれば強制的に検索でき[]
ますか?
あなたの場合はmessage
フィールドが分析されたテキストで、その後、ブラケットがアナライザによって廃棄されます。キーワードデータ型に対してクエリを実行する必要があります。より正確には、aprefix
やwildcard
クエリなどのキーワードデータ型に対して正規表現を実行する必要があります。
レッツは、のマッピングが仮定message
ですkeyword
。場合は[BOOK]
、あなたのログメッセージの先頭に常にあり、有効なクエリは以下の通りであります:
{ "query": {
"prefix": {
"message": "[BOOK]"
}
}}
代わり[BOOK]
に、message
値の任意の部分を検索する場合は、次のようなものが必要になります。
{ "query": {
"wildcard": {
"message": "*[BOOK]*"
}
}}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加