Как искать слово со специальными символами в Kibana - Elasticsearch - PullRequest
0 голосов
/ 17 июня 2020

Кто-нибудь знает, как я могу получить значения, содержащие это значение, в сообщении? Если я удалю (-) и (/), он ищет, если я оставлю их, запрос ничего не вернет.

Not ....

GET my-index/_search
{
   "query": {
        "wildcard" : {
            "message": "*Z-01-123456-9/2020-1*"
        }
    }
}

Not ... .

GET my-index/_search
{
   "query": {
        "wildcard" : {
            "message": "*Z\\-01\\-123456\\-9\/2020\-1*"
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 22 июня 2020

Вот мое решение

GET my-index/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match_phrase": {"message": "Z-01-123456-9/2020-1"}
        },
        {
          "range": {
            "@timestamp": {
              "gte": "2020-06-16T07:00:00",
              "lt": "2020-06-23T00:00:00"
            }
          }
        }
      ]
    }
  }
}
0 голосов
/ 20 июня 2020

Сопоставление:

{
  "mappings": {
    "properties": {
      "message": {
        "type": "keyword"
      }
    }
  }
}

Данные индекса:

{
    "message": "Z-01-123456-9/2020-1"
}
{
  "message": "K-01-123456-9/2020-12"
}
{
  "message": "Z-01-123456-9/2020-12"
}

Поисковый запрос:

Необходимо, чтобы поле не анализировалось. Значения типа "ключевое слово" не анализируются и индексируются как есть.

{
   "query": {
        "wildcard" : {
            "message": "*Z-01-123456-9/2020-1*"
        }
    }
}

Результат поиска:

"hits": [
            {
                "_index": "test2",
                "_type": "_doc",
                "_id": "1",
                "_score": 1.0,
                "_source": {
                    "message": "Z-01-123456-9/2020-1"
                }
            },
            {
                "_index": "test2",
                "_type": "_doc",
                "_id": "3",
                "_score": 1.0,
                "_source": {
                    "message": "Z-01-123456-9/2020-12"
                }
            }
        ]

Можно даже игнорировать специальные символы в запросе с фильтром замены шаблона и пользовательским анализатором.

...