2013-11-20 11 views
1

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

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

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

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

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

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

ответ

0

Elasticsearch имеет bool query type Вы можете добавить определить запрос с ним я не дам вам точный код С его внешний вид, как домашнее задание или уступки Если вы дают нам то, что вы делали до сих пор, то я мог бы добавить рабочий код

Но вот псевдокод:..

carQuery = fieldName with fieldValue 'car' 
bigQuery = fieldName with fieldValue 'big' 
redQuery = fieldName with fieldValue 'red' 

boolQuery.must(carQuery).should(bigQuery).mustnot(redQuery) 

Я надеюсь, что это будет полезно

+0

да, я t кажется, что он работает для меня, если я поместил все поля в какое-то другое поле ** текст **, то JSON для запроса будет следующим: { "query": { "bool": { "should": [ \t {"term": {"text": {"term": "big"}}}, {"term": {"text": {"term": "red"}}}, { «термин»: {«текст»: {«термин»: «автомобиль»}}} ] } } } –

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