Упругая: поиск с ненужными словами
Пожалуйста, покажи мне правильное направление:)
У меня есть задача: найти документы в упругом поиске по запросу, который может содержать ненужные слова.
Я покажу, что я имею в виду:
предположим, что у меня есть какой-то документ, который содержит слова "большая красная машина" (теперь они в разных полях в индексе), и я хочу найти этот документ с такими запросами, как: "большая темно- красная машина" или "очень большая светло- красная мускулатура" автомобиль"или даже" большой автомобиль имеет красивый красный цвет ". Но, в то же время, я хочу сохранить возможность найти на "красной машине" или "большой машине"
Список ненужных слов не определен, и я не могу добавить их к стоп-словам.
Заранее спасибо (:
1 ответ
Elasticsearch имеет тип запроса bool. Вы можете добавить определить свой запрос с ним. Я не буду давать вам точный код. Так как это выглядит как домашнее задание или задание. Если вы сообщите нам, что вы уже сделали, я мог бы добавить рабочий код.
Но вот псевдокод:
carQuery = fieldName with fieldValue 'car'
bigQuery = fieldName with fieldValue 'big'
redQuery = fieldName with fieldValue 'red'
boolQuery.must(carQuery).should(bigQuery).mustnot(redQuery)
Надеюсь это будет полезно.