В настоящее время я использую собственный анализатор с установленным токенизатором (\W|_)+
Таким образом, каждый термин имеет только буквы и разбивается на любую не букву. В качестве примера у меня есть документ с содержимым [dbo].[Material_Get]
, а другой - с dbo.Another_Material_Get
. Я хочу, чтобы иметь возможность искать «Material_Get» и иметь удар по обоим документам, но если я положу поиск «[Material_Get]», он по-прежнему попадает на dbo.Another_Material_Get
, хотя в нем нет скобок. Также, если я ищу «Material Get» (в цитированном поиске), я не должен получать никаких хитов, потому что ни у кого из них нет этой фразы.ElasticSearch поиск специальных символов с анализатором рисунков
Я мог бы обосноваться для анализатора/токенизатора, который мог бы найти всякий раз, когда есть входная строка в любом месте файла, даже если у него есть другие вещи рядом с ним. Например, поиск «aterial_get» будет соответствовать в обоих. Можно ли сделать одно из моих дел?
ли max_gram 15 в основном говорят, что если существует частичный поиск более чем 15 не будет работать? Также есть простой способ установить это как анализатор для всех полей? – Nived
Насколько медленный поиск будет для большого большого количества большого документа? – Nived
max_gram из 15 означает, что токены будут генерироваться до максимальной длины 15. так что поиск дольше 15 не будет работать. Вы можете настроить тот же анализатор на все поля, но не рекомендуется. Для больших текстов размер индекса значительно увеличится, что приведет к удару в результатах поиска. Но опять же это зависит от того, сколько у вас оборудования и сколько у вас документов. В конце концов, это также токены в инвертированном индексе. Обычно ngram/edgengram используется для небольших полей для автоматического заполнения запросов типа. –