elasticsearch соответствует всем словам из документа в поисковом запросе
мы можем искать все слова в конкретном документе.поле такое:
{ "query" : { "match" : { "title": { "query" : "Black Nike Mens", "operator" : "and" } } } }
это будет искать слова Black
, Nike
и Mens
в поле title
такие, что только те документы, которые будут иметь все эти слова в
1 ответов
Я, наконец, получил его на работу, но не с прямым методом!
вот что я делаю:
- создайте чистый список слов из исходного запроса,:
- изменить на нижний регистр
- замена любых специальных символов и знаков препинания пробелом
- удалить дубликаты слов
- поиск с использованием обычного соответствия с оператором OR для слов, объединенных в строку
- теперь мы найдем лучшие актуальные хиты в результате
- мы берем эти хиты один за другим и делаем слово в слово поиск в php (или любой язык программирования, который вы используете)
- этот поиск слов будет проверять все слова документа из только что найденных хитов и сопоставлять их со словами в исходном запросе; так что все слова из документа попадания должны присутствовать в строке исходного запроса
Это работает для меня достаточно хорошо!
Если у кого-то нет прямого метода из elasticsearch язык запросов.