Фильтр квадратных скобок на кибане - PullRequest
1 голос
/ 07 января 2020

Я пытаюсь отфильтровать квадратные скобки в моих сообщениях журнала в Кибане. Предположим, у меня есть сообщения:

[BOOK] The Book 32 was sold
Exception on buying BOOK

И я хочу отфильтровать только сообщения, имеющие ровно [BOOK] (поэтому я должен получить только первое).

Я попытался отфильтровать свободный текст со всеми видами побега я мог подумать:

[BOOK]
"[BOOK]"
\[BOOK\]
"\[BOOK\]"
\\[BOOK\\]

А также попытался отфильтровать по полю сообщения:

message: [BOOK]*
message: "[BOOK]*"
message: \[BOOK\]*
message: "\[BOOK\]*"

Но Кибана, похоже, просто игнорирует квадратные скобки и всегда выводит оба сообщения, выделяя только слово BOOK.

Как я могу заставить его искать []?

1 Ответ

1 голос
/ 14 января 2020

, если ваше поле message является анализируемым текстом, анализаторы удаляют скобки. Вы должны выполнить свой запрос к типу данных ключевого слова. Точнее, вам нужно будет выполнить регулярное выражение для типа данных ключевого слова, такого как запрос prefix или wildcard.

Предположим, что отображение message равно keyword. Если [BOOK] всегда находится в начале вашего сообщения журнала, то допустимым является следующий запрос:

{ "query": {
  "prefix": {
    "message": "[BOOK]"
  }
}}

Если вместо этого вы хотите найти [BOOK] в любой части message значение, то вам нужно что-то вроде:

{ "query": {
  "wildcard": {
    "message": "*[BOOK]*"
  }
}}
...