У меня есть поле под типом компании в моем индексе elasticsearch, который отражает технологии, которые использует компания. Поэтому люди, приходящие на наш сайт, могут ввести java
, Java
, C#
, c#
, .Net
, .net
и т. Д. В поле поиска, чтобы получить компании.Как искать # или. в Elasticsearch
Первоначально я проиндексировал это по умолчанию, а затем не смог найти .Net
или C#
, так как в поисковом запросе были подстановочные знаки. Когда я искал Net
или C
, он возвращал компании, которые используют C
или C#
, что еще раз.
Я провел некоторое исследование и изменил отображение поля на "index": "not_analyzed"
и переиндексировал компании. Теперь он вернул правильные компании для C#
и .Net
, но в случае неудачи в этом случае поисковый запрос не был точным совпадением. Таким образом, он не возвращал компании с технологиями Java
, когда поисковый запрос был java
, но он корректно возвращался, когда поисковый запрос был java
. Я понимаю, что not_analyzed
требует точного соответствия
Как мне проиндексировать и запрашивать одно и то же поле, чтобы разобраться в обоих этих случаях?
Это работает. Благодарю. –
Ницца, рад, что все получилось! – Val