如何在ElasticSearch中使用“zero_terms_query”

r1zhe5dt  于 2023-03-17  发布在  ElasticSearch
关注(0)|答案(1)|浏览(504)

在搜索文档中,他们有一个示例:

GET /_search
{
  "query": {
    "match": {
      "body": {
        "query": "to be or not to be",
        "operator": "and",
        "zero_terms_query": "all"
      }
    }
  }
}

但是我不知道有什么文件可以说明zero_terms_query: nonezero_terms_query: all的区别,请帮助我,非常感谢!

tez616oj

tez616oj1#

ElasticSearch文档中对此进行了描述
如果为索引中的特定字段设置分析器,并配置停用词过滤器(例如,单词“hello”、“world”),则此查询:

GET /_search
{
  "query": {
    "match": {
      "message": {
        "query": "hello world",
        "operator": "and",
        "zero_terms_query": "none"
      }
    }
  }
}

将不会产生任何结果,因为"zero_terms_query": "none"(默认参数)表示当配置的分析器删除了查询中出现的所有“world”时不返回任何结果。
相反,zero_terms_query: "all"将只返回索引中的ALL文档(与"match all"查询相同)

相关问题