Совпадение не получается при использовании match_phrase_prefix в упругом поиске - PullRequest
1 голос
/ 06 марта 2019

Я использовал match_phrase_prefix. Он выдает результаты, если я выполнил поиск, введя несколько символов, но когда я добавил еще несколько символов в поле поиска, запрос возвращает ноль совпадений.

Например: если я наберу abcd, он возвращает совпадение. Но если я наберу abcd e, то даже при совпадении я не получу.

Ниже приведен запрос, который я использовал

здесь _field: это имя файла и

_queryText: это значение поля поиска, которое я ввожу.

Могу ли я использовать условие должно или должно соответствовать или минимум должен соответствовать здесь, если да, то как? Заранее спасибо

{
  body: {
    'query': {
      'match_phrase_prefix': {
        [_field]: _queryText
      },
    },
    'size': 15,
  }
}

1 Ответ

2 голосов
/ 06 марта 2019

Match_phrase_prefix - это то же самое, что match_phrase, за исключением того, что он допускает совпадения префиксов для последнего термина в тексте.

В вашем случае, когда вы ищете abcd как единственный термин в поисковом запросе, он сделает запрос с префиксом, и документы, содержащие abcd, abcde, abcdef, будут совпадать.

Но как только вы измените поисковый запрос на abcd e, он будет содержать два слова abcd и e. Он сделает запрос на совпадение в abcd и запрос на префикс в e, поэтому документы, содержащие abcd, за которыми следуют e или ef или efg, будут совпадать.

Было бы лучше, если бы вы могли предоставить свои образцы документов, чтобы я мог лучше объяснить, что должно совпадать, а что нет, и причину этого.

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