2016-06-11 1 views
0

Я работаю над ElasticSearch и хочу активировать точное слово и поиск полного текста одновременно. Точный поиск слов работает отлично с not_analyzed индексом, а полнотекстовый поиск отлично работает с анализируемым индексом. Теперь я хочу объединить оба эти. Ниже приведен пример того, что именно я хочу:ElasticSearch: Точное слово и полный текст поиска вместе

Предположим, у меня есть две записи:

  1. Это яблоко
  2. яблочный

Если поиск пользователя для «яблока», то там должен быть один результат (поиск точного слова), но если пользователь ищет «яблоко», тогда должны быть две записи (полнотекстовый поиск).

ответ

0

Я могу выполнять как точное слово, так и полнотекстовый поиск с использованием поиска elastics. Я сопоставил поля с индексом not_analyzed, а затем использовал подстановочный знак для полнотекстового и фильтра/терминов для точного поиска. Поэтому я сделал почти все. Теперь в последнем выпуске я столкнулся с тем, как использовать подстановочный знак для нескольких полей.

Ниже подстановочные запрос: "query": { "wildcard": { "Field1": { "value": "*apple*" } } }

У меня есть несколько полей Field1, FIELD2 .... FieldN. Я должен искать одинаковое значение для всех файлов. Я пробовал: "query": { "wildcard": { "Field1": { "value": "*apple*" } , "Field2": { "value": "*apple*" } } }

, но это только показывает результат последнего поля (в приведенном выше поле Field2).

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

Thanks Tarlok

Смежные вопросы