2

我有一个这样的查询:

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

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

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

4

1 回答 1

8

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

"filter": { "terms": { "user": ["jonh", "doe", ..., "asdf"]} }
于 2013-07-25T20:16:25.990 回答