1
У меня есть упрощенный объект, который выглядит примерно так:Elasticsearch фильтрация вложенных объектов
"name" : "Partner Name",
"features" : [
{
"val" : "Family",
"key" : "Type"
},
{
"val" : "Paris",
"key" : "City"
}
],
"variants" : [
{
"name" : "Activity 1 Name",
"description" : "Quick description",
"price" : 20
}
]
Я хочу, чтобы фильтровать города и ключи типа. Мой текущий запрос фильтрует по цене, но я не могу заставить его работать для City или Type. Добавление большего количества терминов в массив фильтров не помогло.
'query':{
'filtered':{
'query':{
'query_string':{
'query':query
}
},
'filter': {
'bool':{
'filter': [{
'range': {
'variants.price': {
'gte': 0
}
}
},
{
'range': {
'variants.price': {
'lte': 50
}
}
},
{
'term': {
'active': true
}
}
]
}
}
}
}
Любая помощь будет принята с благодарностью. Благодаря!
Спасибо за ответ. Я пробовал форматировать JSON, как вы предлагали, но я все еще получаю ошибку с плохим ответом 400. Вот пастебин моего объекта http://pastebin.com/nsex7PfK – CptnKrunch
Какую версию ES вы используете? –
Elasticsearch 2.3.4 – CptnKrunch