You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Elasticsearch中使用zero_terms_query?none和all取值有何差异

Elasticsearch zero_terms_query 参数取值区别说明

zero_terms_query 是 match 查询的专属控制参数,作用场景为:查询文本经过对应字段的分词器处理后,所有词项都被过滤(最常见的场景是查询文本全是停用词,比如示例里的to be or not to be,若使用开启了英文停用词过滤的分词器,所有内容都会被过滤,最终得到空的词项列表),此时该参数决定查询的执行逻辑。

两个取值的核心区别如下:

  • none:为参数默认值。分词后无有效词项时,直接返回空结果,即没有任何文档命中查询。
  • all:分词后无有效词项时,等效执行match_all查询,返回索引内的全部文档。

你给出的示例代码场景下,如果body字段配置的分词器开启了英文停用词过滤,查询字符串分词后没有有效词项,配置"zero_terms_query": "all"会返回索引所有文档;如果替换为none,则不会返回任何结果。


内容的提问来源于stack exchange,提问作者TanPS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 02:45:06