Как проиндексировать все подстроки слова в Elastic Search, кроме использования ngram - PullRequest
0 голосов
/ 17 января 2019

Я ищу средство для поиска подстроки внутри фразы или текста. Я знаю, что могу использовать токенайзер ngram и установить min-gram и max-gram для достижения этой цели. Но так как эластичный поиск показывает предупреждение об устаревании, если минимальное и максимальное значение ngram больше единицы, я ищу другую тренировку. Например, у меня есть следующие тексты:

Fox is a animal
The quick fox is cunning
Fox is quick

Теперь я хочу выполнить поиск nim, чтобы получить первый документ. Поиск по fox даст все три результата. Поиск по quick fox даст два последних. Я достиг этого результата, используя токенайзер ngram с min-gram и max-gram.

Я использовал фильтр со значением min-gram 2 и значением max-gram 8 для моего analyzer. И в моем search-analyzer я использовал токенизатор whitespace для достижения того, чего я хочу. Есть ли какой-нибудь другой способ достижения того же результата без использования разницы min-gram и max-gram больше, чем на единицу. Проблема с этим решением заключается в том, что выводится предупреждение об устаревании для ngram разницы более одного.

...