我有一个使用query string dsl的查询,我希望它返回与所有三个断言都匹配的结果。 (状态=有效,价格= 100,语言= zh)。
如何使language
参数成为可选参数,如果不匹配,则得分更低,而根本不匹配?
(status:"active") AND (price:100) AND (language:"en")
答案 0 :(得分:1)
您可以尝试
(status:active AND language:en) OR (price:100 AND language:en)
或更短的版本:
+status:active +price:100 language:en
使用bool
和match
查询重写的等效查询是这样的:
{
"bool": {
"must": [
{
"match": {
"status": "active"
}
},
{
"match": {
"price": 100
}
}
],
"should": {
"match": {
"language": "en"
}
}
}
}