我的弹性搜索DSL存在问题,因为在使用构面导航时,当我应用我的构面过滤器时,下一组结果不包括任何其他方面,即使我已经要求它们。
当我进行初始搜索时,我得到了我想要的结果:
{
"sort": {
"_score": {},
"salesQuantity": {
"order": "asc"
}
},
"query": {
"filtered": {
"query": {
"match": {
"categoryTree": "D01"
}
},
"filter": {
"term": {
"publicwebEnabled": true,
"parentID": 0
}
}
}
},
"facets": {
"delivery_locations": {
"terms": {
"field": "delivery_locations",
"all_terms": true
}
},
"categories": {
"terms": {
"field": "categoryTree",
"all_terms": true
}
},
"collectable": {
"terms": {
"field": "collectable",
"all_terms": true
}
}
},
"from": 0,
"size": 12}
当我然后应用这样的过滤器时,我得到的结果不包括facets:
{
"sort": {
"_score": {},
"salesQuantity": {
"order": "asc"
}
},
"query": {
"filtered": {
"query": {
"match": {
"categoryTree": "D01"
}
},
"filter": {
"term": {
"publicwebEnabled": true,
"parentID": 0
},
"or": [
{
"range": {
"Retail_Price": {
"to": "49.99",
"from": "0"
}
}
}
]
}
}
},
"facets": {
"delivery_locations": {
"terms": {
"field": "delivery_locations",
"all_terms": true
}
},
"categories": {
"terms": {
"field": "categoryTree",
"all_terms": true
}
},
"collectable": {
"terms": {
"field": "collectable",
"all_terms": true
}
}
},
"from": 0,
"size": 12}
注意,我正在添加上面的OR过滤器 - 因为用户可以选择多个价格范围进行过滤。
我做错了吗?
我希望返回新的方面,因为改变价格会明显改变其他方面的方面数......
答案 0 :(得分:0)
在or-filter中添加原始term-filter,或添加另一个boolean filter以将整个过滤器包装在布尔表达式中。我不认为你可以通过逗号分隔它们来添加两个过滤器。