我有这样的查询:
"filter": {
"query": {
"terms": { "user": ["jonh", "doe", ..., "asdf"]}
}
}
对于我们的用例,数组中的用户数量是任意大的。但是,当数组大小超过"SearchPhaseExecutionException[Failed to execute phase [query], total failure;
时,ElasticSearch似乎失败了1027
。
这是预期的行为吗?如果是这样,有没有办法增加接受数组的大小?
答案 0 :(得分:7)
您的请求正在使用查询这一术语,该术语将被转换为布尔查询,默认情况下不接受超过1024个术语。但是,由于您稍后将其用作过滤器,因此切换到使用过滤器这些没有此限制的术语实际上会更快。您所要做的就是从请求中删除query filter:
"filter": { "terms": { "user": ["jonh", "doe", ..., "asdf"]} }