Упругая: поиск с ненужными словами

Пожалуйста, покажи мне правильное направление:)

У меня есть задача: найти документы в упругом поиске по запросу, который может содержать ненужные слова.

Я покажу, что я имею в виду:

предположим, что у меня есть какой-то документ, который содержит слова "большая красная машина" (теперь они в разных полях в индексе), и я хочу найти этот документ с такими запросами, как: "большая темно- красная машина" или "очень большая светло- красная мускулатура" автомобиль"или даже" большой автомобиль имеет красивый красный цвет ". Но, в то же время, я хочу сохранить возможность найти на "красной машине" или "большой машине"

Список ненужных слов не определен, и я не могу добавить их к стоп-словам.

Заранее спасибо (:

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)

Надеюсь это будет полезно.

Другие вопросы по тегам