ElasticSearch Regex Query Нет данных - PullRequest
0 голосов
/ 16 марта 2019

Почему мой запрос регулярного выражения не находит этот документ.

enter image description here

Документ

enter image description here

Я не хочу найти сообщение, похожее на это.enter image description here

1 Ответ

0 голосов
/ 16 марта 2019

уберите знак доллара из вашего выражения регулярного выражения.

{
  "query": {
    "regexp": {
      "message.keyword": "I,.* "
    }
  }
}

ОБНОВЛЕНИЯ (из моих комментариев)

  • Почему знак доллара не работает ? ИМХО, документация Elastic немного вводит в заблуждение. Первый абзац (тот, который упоминает ^ и $ якоря) говорит о " большинстве движков регулярных выражений ", но не о Elasticsearch. Фактически, в следующем параграфе говорится, что « шаблоны Lucene всегда привязаны », и, поскольку Lucene поддерживает Elasticsearch, вам не нужно явно определять ^ и $ в своем регулярном выражении.
  • Производительность . Этот тип запроса очень дорогой и может быстро снизить производительность. Я бы предложил переосмыслить структуру и / или отображение ваших документов.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...