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

标签 elasticsearch

我有这样的查询:

“筛选”: { “询问”: { “术语”:{“用户”:[“jonh”,“doe”,...,“asdf”]} } }

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

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

最佳答案

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

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

关于ElasticSearch:术语查询中的数组大小不能超过 1000 个索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17865271/

相关文章:

elasticsearch - 如何获取kibana 4.x中字段的总值

elasticsearch - Elastic Search 如何使用 painless 删除对象属性

elasticsearch - 当Elasticsearch死/无法写入磁盘时的Logstash可用性

elasticsearch - 哪个ELK(Elastic search,logstash,Kibana)堆栈版本与Java 7兼容

elasticsearch - Elastic Search 5.6中的嵌套查询兼容性

elasticsearch - 通过文本匹配和到一个点的距离对文档进行评分

elasticsearch - 如何在Kibana可视化中做 “success rate”?

elasticsearch - 如何使用Docker为Cassandra和Elasticsearch设置JanusGraph?

elasticsearch - Elasticsearch支持区分大小写和不区分大小写

elasticsearch - 动态构建的Elasticsearch NEST 5.x搜索查询