查找字段存在的所有文档:在 Elasticsearch 中它有一个值或为空

Posted

技术标签:

【中文标题】查找字段存在的所有文档:在 Elasticsearch 中它有一个值或为空【英文标题】:Find all documents where field exists literally: either it has a value or it is null in Elasticsearch 【发布时间】:2021-02-24 19:53:09 【问题描述】:

我知道如何用非空字段确定Elasticsearch6.8中的文档,例如:

GET grch38_test__wes__grch38__variants__20210222/_search

  "query": 
    "bool": 
      "must": [
        "exists": 
          "field": "hgmd_accession"
        
      ]
    
  

但是如何在一个查询中返回现有(非 null)和空值?我需要找到值确实存在的文档:空或设置为 null。我的索引中可能有一些文档根本不存在该字段,我需要 _reindex 那些只是以任何形式存在该字段的文档。

【问题讨论】:

【参考方案1】:

我不认为 null 值可以被搜索,因为它们没有被 elasticsearch 索引。

如果您可以更改索引映射,那么您应该查看 elasticsearch 提供的 null_value 属性。 在这里找到它:https://www.elastic.co/guide/en/elasticsearch/reference/6.8/null-value.html

【讨论】:

以上是关于查找字段存在的所有文档:在 Elasticsearch 中它有一个值或为空的主要内容,如果未能解决你的问题,请参考以下文章

Mongodb检查数组的子文档中是否存在字段

MongoDB:通过不存在的字段查找文档?

sqlserver查找使用了某个字段的所有存储过程

根据嵌套对象字段的长度查找所有文档

通过键字段查找 MongoDB 集合中的所有重复文档

是否有针对 Netezza(Toad 数据点)的查询以查找存在特定字段名称的所有表