一尘不染

Elasticsearch必须和应该布尔查询之间的区别

elasticsearch

MUSTSHOULDES中的bool查询有什么区别?

如果我 想要包含我的条款的结果,那我应该使用must

我有一个查询,应该只包含某些值,也没有日期/时间戳比今天的时间/日期低的结果-现在

我可以在下面的代码中使用多个过滤器吗:

"filtered": {
"filter": {
"bool" : {
        "must" : {
            "term" : { "type" : 1 }
            "term" : { "totals" : 14 }
            "term" : { "groupId" : 3 }
            "range" : {
                "expires" : {
                    "gte": "now"
                }
            }
        },

阅读 219

收藏
2020-06-22

共1个答案

一尘不染

必须 表示:子句(查询)必须出现在匹配的文档中。这些子句必须匹配,例如逻辑 AND

应该 表示:这些子句中的至少一个必须匹配,例如逻辑 OR

基本上,它们的使用类似于逻辑运算符AND和OR。看到这个

现在在布尔查询中

必须 表示: 必须 与要包含的文档匹配的子句。

应该 表示:如果这些子句匹配,则增加_score; 否则,它们将无效。它们仅用于完善每个文档的相关性得分。


是的,您可以在内部使用多个过滤器must

2020-06-22