首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检查Elasticsearch文档中是否存在字段的最佳方法

检查Elasticsearch文档中是否存在字段的最佳方法
EN

Stack Overflow用户
提问于 2015-10-05 21:00:27
回答 5查看 82.1K关注 0票数 41

检查elasticsearch中的文档字段是否存在的最佳方法是什么?我在文档里找不到任何东西。

例如,如果这个文档没有字段/键"price“,我就不想在结果中返回。

代码语言:javascript
运行
复制
{
    "updated": "2015/09/17 11:27:27",
     "name": "Eye Shadow",
     "format": "1.5 g / 0.05 oz",
}

我能做些什么?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-10-05 21:07:45

您可以使用

过滤器

过滤器

如下所示:

代码语言:javascript
运行
复制
{
  "query": {
    "filtered": {
      "filter": {
        "bool": {
          "must": [
            {
              "exists": {
                "field": "price"
              }
            },
            ...     <-- your other constraints, if any
          ]
        }
      }
    }
  }
}

不推荐使用(从ES5开始)

您还可以使用

过滤器

过滤器

代码语言:javascript
运行
复制
{
  "query": {
    "filtered": {
      "filter": {
        "bool": {
          "must_not": [
            {
              "missing": {
                "field": "price"
              }
            }
          ]
        }
      }
    }
  }
}
票数 59
EN

Stack Overflow用户

发布于 2016-07-27 15:07:56

The The The

筛选器已替换为

查询

从ES 2.1开始,尽管它的工作原理是相同的。此外,缺少的筛选器将被删除,并且不推荐使用缺少的查询。

为了获取具有特定字段的所有文档,

代码语言:javascript
运行
复制
"bool": {
    "must": {
        "exists": {
            "field": "my_field"
        }
    }
}

要获取没有特定字段的所有文档,请将其与

像这样

代码语言:javascript
运行
复制
"bool": {
    "must_not": {
        "exists": {
            "field": "my_field"
        }
    }
}

弹性文档:

https://www.elastic.co/guide/en/elasticsearch/reference/2.3/query-dsl-missing-query.html

票数 19
EN

Stack Overflow用户

发布于 2017-06-21 19:50:32

您可以直接执行以下操作

代码语言:javascript
运行
复制
{
    "query": {
        "exists": {
            "field": "fieldName"
        }
    }
}

如果你也想添加一些匹配,那么你可以去

代码语言:javascript
运行
复制
{
    "query": {
        "bool": {
            "must": [{
                "match": {
                    "fieldName": "value"
                }
            },
            {
                "exists": {
                    "field": "fieldName"
                }
            }]
        }
    }
}

https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-exists-query.html

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32949321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档