Elasticsearch запрос multi_match - PullRequest
       2

Elasticsearch запрос multi_match

0 голосов
/ 25 февраля 2019

Я пытаюсь создать запрос эластичного поиска, который ищет несколько полей.Это работает отлично до сих пор.Тем не менее, я хотел бы уточнить это.Допустим, слово было проиндексировано: «тест».Однако, когда я ищу слово «tes», он не находит это слово для меня, но я хотел бы показать его уже - но комбинация с моим запросом ставит меня перед проблемой.

             {
             "multi_match" : {
               "query":      "*" + query + "*",
               "type":       "cross_fields",
               "operator":   "and",
               "fields":     ["article.number^1","article.name_de^1", "article.name_en^5", "article.name_fr^5", "article.description^1"],
               "tie_breaker": 0,
             }

1 Ответ

0 голосов
/ 25 февраля 2019

В зависимости от ваших ограничений, вот ваши варианты.

Если вы хотите использовать подстановочный знак до / после поискового запроса, вы можете использовать подстановочный запрос .Это приводит к высокой стоимости обработки во время запроса.

Если у вас все в порядке с дополнительными затратами на хранение, вы можете выбрать токенизацию своего ввода в процессе анализа.См. ngram tokenizer .Помните, что если у вас длинные строки, это может быстро взорвать требования к хранилищу.

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