【问题标题】:How do I query for an exact and only one property in ElasticSearch?如何在 ElasticSearch 中查询一个确切且唯一的属性?
【发布时间】:2019-05-24 12:26:27
【问题描述】:

我有一个具有以下映射的文档:

"employees": {
   "type": "dynamic",
   "properties": { 
      "prop1":  { ""type": "text" },
      "prop2": { "type": "text"  }
   }
}

我想查询所有具有prop1 的文档,仅此而已,我不想获取同时具有prop1 和prop2 的文档。如果我对 prop1 使用术语查询,我还会得到可能包含 prop2 的文档。

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    这应该可行:

    GET employees/_search
    {
        "query": {
            "bool": {
                "must": [{
                    "exists": {
                        "field": "prop1"
                    }
                }],
                "must_not": [{
                    "exists": {
                        "field": "prop2"
                    }
                }]
            }
        }
    }
    

    这是说prop1 必须存在而prop2 不能存在,所以你不会得到同时具有prop1和prop2的文档。

    【讨论】:

      【解决方案2】:

      与此同时,我了解到这样做的一个好方法是跟踪设置了哪些属性的计数。因此,您可以查询属性计数和您想要的属性。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-13
        • 2013-08-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-05
        相关资源
        最近更新 更多