Я пытаюсь реализовать поисковую систему с ElasticSearch. Моя проблема заключается в расположении объектов Во-первых, искавшие объекты могут иметь различный тип места:Запрос эластичный поиск с множеством уровней «bool query»
- Страна
- Страна + Состояние
- Страна + ГСО + Район
Вот пример:
Country = A
State = B
District = C
Currently I get all the objects that have the location :
Country = A and State = B and District = C
I want also find objects which have the location:
only Country = A
and
only Country = A and State = B
Это немного сложно объяснить, но принцип ле.
Так что я создал следующий ElasticSearch запрос:
"query" : {
[{"bool":{
"should":[
{"bool":{
"must":[
{"match":{"country":"-223"}},
{"match":{"state":"-3760"}},
{"match":{"district":"-8245"}}
]
}},
{"bool":{
"must":[
{"match":{"country":"-223"}},
{"match":{"state":"-3760"}},
{"match":{"district":""}}
]
}},
{"bool":{
"must":[
{"match":{"country":"-223"}},
{"match":{"state":""}},
{"match":{"district":""}}
]
}}
]
}}]
}
Но это не работает, я не знаю, что я сделал неправильно. Я прочитал документацию на этом сайте:
http://www.elasticsearch.org/guide/reference/query-dsl/bool-query/
И я стараюсь все, что казалось полезным для моей проблемы, но без успеха ли кто-то может помочь мне найти то, что случилось?
Спасибо F.