ElasticSearch:术语查询中的数组大小不能超过1000个索引

时间:2013-07-25 17:51:12

标签: elasticsearch

我有这样的查询:

"filter": { "query": { "terms": { "user": ["jonh", "doe", ..., "asdf"]} } }

对于我们的用例,数组中的用户数量是任意大的。但是,当数组大小超过"SearchPhaseExecutionException[Failed to execute phase [query], total failure;时,ElasticSearch似乎失败了1027

这是预期的行为吗?如果是这样,有没有办法增加接受数组的大小?

1 个答案:

答案 0 :(得分:7)

您的请求正在使用查询这一术语,该术语将被转换为布尔查询,默认情况下不接受超过1024个术语。但是,由于您稍后将其用作过滤器,因此切换到使用过滤器这些没有此限制的术语实际上会更快。您所要做的就是从请求中删除query filter

"filter": { "terms": { "user": ["jonh", "doe", ..., "asdf"]} }