Elasticsearch获取给定字段的最后一个文档(如果存在)

亚历克斯

我有一个简短的问题,看起来很简单,但到目前为止我找不到任何答案。

我想在Elasticsearch节点上检索给定日期字段的最后一个文档。但我想拥有最后一个文档,仅适用于包含特定字段的文档。

例如,假设我要获取上一次包含字段“ promotionCode ”的购买

询问 :

http://elasticsearch:9200/store1/purchase/_search?q=vendor:Marie&size=1&sort=date:desc

其中store1是我的索引,请购买文档类型。

现在假设我的ElasticSearch中有这两个文档:

"hits": [
      {
        "_index": "store1",
        "_type": "purchase",
        "_id": "1",
        "_score": 1,
        "_source": {
            "date": "2016-03-16T12:53:16.000Z",
            "vendor": "Marie",
            "promotionCode": "XYZ123"
        }
      },
      {
        "_index": "store1",
        "_type": "purchase",
        "_id": "2",
        "_score": 1,
        "_source": {
            "date": "2016-03-18T12:53:16.000Z",
            "vendor": "Marie"
        }
      }
]

上面的查询将检索ID为2的文档,但是我的结果中将没有任何字段“ promotionCode ”。

如果要获取包含特定字段的最后一个文档,该怎么办?

我探索了“字段”过滤器,但如果不包含该字段,它只会发送回无效文档,并且我阅读了有关源过滤的信息,但不确定它是否在执行我想要的操作...

非常感谢您的任何提示!

skal88

您可以尝试以下查询:

{
    "query": {
        "term": { "vendor": "Marie" }
    },
    "filter": {
        "bool": {
            "must_not": { "missing": { "field": "promotionCode" } }
        }
    },
    "sort": { "date" : "desc" },
    "size": 1
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果日期不存在,则获取给定日期的最后一行

获取给定时间跨度的第一个和最后一个条目

Elasticsearch聚合中第一个和最后一个文档的返回字段

(Elasticsearch)如何获取所有文档的嵌套字段的最后一个元素然后执行子聚合

CSS : 获取给定类的最后一个 HTML 标签,在一个列表中,不是每个 HTML 标签都有这个类

我们如何从 elasticsearch 索引中获取最后一个文档?

MongoDB 根据字段仅获取每个分组的最后一个文档

如果一个字段不存在,Mongodb将添加多个文档

如果MongoDB和Mongoose存在另一个匹配的文档,请添加字段

获取给定月份的月份的最后一天

PHP获取给定月份的最后一天

在Mongoose中,如何找到与给定查询值匹配的数组字段的最后一个元素的所有文档?

如果是,则检查数组是否存在,然后获取最后一个元素

Sql获取给定树型数据库的一个国家的所有城市

在Linux中获取给定日期的前一个工作日的功能

获取给定月份和年份中一个月的天数EXCEL

XPath:在另一个DIV中获取给定条件的文本

如何在另一个模块中获取给定类的所有实例

查找给定值的数据,如果不存在,则查找该值数据系列中的最后一个条目

如果字段存在,ElasticSearch 如何删除文档?

获取n个不同字段的最后一个值

MongoDB Aggregate在文档中添加一个新字段(如果已存在另一个字段)

如何获取给定文档的tfidf向量

Elasticsearch获取最后一个嵌套或最近嵌套的元素

使用awk获取最后一个字段

TABLEAU:calc字段以获取最后一个可用值

Elasticsearch:在一个请求中获取多个指定文档?

在elasticsearch聚合中每个bucket获取一个文档

Elasticsearch:获取给定文档中每个术语的tf-idf