NEST elasticsearch -C# - поиск с учетом регистра

Мы новичок в эластичном поиске и NEST.

Мы пытаемся выполнить поиск с учетом регистра, используя клиент С# - NEST. Мы прочитали много сообщений, но не могли понять это. Может кто-нибудь порадовать нас подробной пошаговой инструкцией.

Любая помощь будет высоко оценена.

Спасибо, ВБ.


person Vishal    schedule 27.06.2013    source источник
comment
Некоторый код того, что вы пробовали, поможет начать.   -  person Srikanth Venugopalan    schedule 28.06.2013


Ответы (2)


Я знаю, что это старый вопрос, но я столкнулся с ним в своем исследовании. Итак, вот мой ответ.

Во-первых, переход на запрос TERM не помог. Узнав больше о том, как ElasticSearch работает по умолчанию, я понял, почему.

По умолчанию ElasticSearch нечувствителен к регистру. Когда документы индексируются, анализатор по умолчанию переводит все строковые значения в нижний регистр и сохраняет значения в нижнем регистре для будущих поисков. Это не влияет на значения, хранящиеся в самих документах, но нижний регистр влияет на поиск.

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

Прежде чем я узнал, как это работает, я провел довольно много времени, просматривая значение поля смешанного регистра в проиндексированном документе, а затем выполняя поиск по термину запроса, в котором использовалось то же значение смешанного регистра. Нулевой результат. Только после того, как я перевел значение, которое использовал мой запрос, в нижний регистр, я начал получать результаты.

Подробнее об анализаторах ElasticSearch можно прочитать здесь: ElasticSearch — Analysis

person AggieEric    schedule 24.12.2014
comment
.. и почему, черт возьми, это не объясняется в документации Nest? (то же самое было здесь :/) - person I.G. Pascual; 10.11.2015

Попробуйте запрос TERM, если значения, переданные в запрос TERM, не анализируются, поэтому ES не делает строчные буквы вашего ввода.

Здесь: http://www.elasticsearch.org/guide/reference/query-dsl/term-query/

person Przemysław Kalita    schedule 17.08.2013