Elastic Clause在ElasticSearch / Rewrite查询中计数

时间:2017-09-05 10:42:54

标签: elasticsearch

我知道ElasticSearch对bool查询中可以使用的子句数有内部限制。这由ElasticSearch.yml文件中的max_clause_count控制。

但我认为此限制不适用于搜索中传递的值

因此,如下所示的查询将起作用,其中包含超过1024个值 术语查询

{
        "query":{
            "bool":{
                "should":[
                    { "terms": {"id": ["cafe-babe-0000","cafe-babe-0001",... ]}}
                ] 
            }
        }
}

但是此查询将启动TooManyClauses异常。所以,在这种情况下, 查询中的值数量也计入此限制。这是对的吗?

此外,我现在认为这不是执行此类查询的最佳方式,但是 是否可以重写上一个查询以便不超过限制?

1 个答案:

答案 0 :(得分:0)

您可以使用ids query

"query": {
    "ids": {
        "values": [ "cafe-babe-0000","cafe-babe-0001",... ]
    }
}

据我所知,此查询没有任何限制。