строка запросаasticsearch с дефисами - PullRequest
0 голосов
/ 03 февраля 2020

Elasticsearch 5.6

Я определил свое поле как текстовое поле с анализатором пробелов, чтобы избежать разбиения на дефисы.

Я хочу запросить его, используя запрос строки запроса, например :

{
    "query": {     
      "query_string": {
        "query": "CODE-13-006",
        "default_operator": "AND",
        "analyzer": "whitespace"
      }
   }
}

поэтому, если я не укажу, в каком поле я хочу искать, (насколько я понял) он должен запрашивать поля "*". Даже если запрос, подобный приведенному выше, ничего не возвращает, но если я запрашиваю указанное поле c, он находит совпадение.

Любая подсказка?

Ответы [ 2 ]

0 голосов
/ 04 февраля 2020

Хорошо, так что в случае, если у кого-то возникли подобные сомнения ...

Моя проблема заключалась в том, что, хотя я запрашивал поле _all (объединяя значения из всех других полей), я забыл, что по умолчанию он использует стандартный анализатор (который разделяет токены на дефисы). Поэтому, хотя в моей области использовался анализатор ключевых слов, в моем запросе _all я не смог его найти - просто потому, что он был разбит стандартным анализатором.

Глупая ошибка, но, возможно, она поможет кому-то в будущем; )

0 голосов
/ 03 февраля 2020

я думаю, что ответ здесь ElasticSearch: Как искать значение в любом поле, по всем типам, в одном или нескольких индексах? для elasti c 5.6 вы можете использовать имя поля _all

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...