elasticsearch соответствует всем словам из документа в поисковом запросе

мы можем искать все слова в конкретном документе.поле такое:

{ "query" : { "match" : { "title": { "query" : "Black Nike Mens", "operator" : "and" } } } }

это будет искать слова Black, Nike и Mens в поле title такие, что только те документы, которые будут иметь все эти слова в

1 ответов


Я, наконец, получил его на работу, но не с прямым методом!

вот что я делаю:

  • создайте чистый список слов из исходного запроса,:
    • изменить на нижний регистр
    • замена любых специальных символов и знаков препинания пробелом
    • удалить дубликаты слов
  • поиск с использованием обычного соответствия с оператором OR для слов, объединенных в строку
  • теперь мы найдем лучшие актуальные хиты в результате
  • мы берем эти хиты один за другим и делаем слово в слово поиск в php (или любой язык программирования, который вы используете)
  • этот поиск слов будет проверять все слова документа из только что найденных хитов и сопоставлять их со словами в исходном запросе; так что все слова из документа попадания должны присутствовать в строке исходного запроса

Это работает для меня достаточно хорошо!

Если у кого-то нет прямого метода из elasticsearch язык запросов.