当前位置: 首页 > 知识库问答 >
问题:

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

洪高刚
2023-03-14

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

我想在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"
        }
      }
]

如果我想获得最后一个文档,包含一个特定的字段,我该怎么做?

我探索了“字段”筛选器,但它只发送回无效文档如果字段不包含,我读了关于源过滤,但不确定它是在做我想要的...

非常感谢您的任何提示!

共有1个答案

赵英资
2023-03-14

Yo可以尝试使用以下查询:

{
    "query": {
        "term": { "vendor": "Marie" }
    },
    "filter": {
        "bool": {
            "must_not": { "missing": { "field": "promotionCode" } }
        }
    },
    "sort": { "date" : "desc" },
    "size": 1
}
 类似资料:
  • 问题内容: 所以我有一个弹性的搜索索引,并且要向它发送带有时间戳的文档。我想知道是否有一种方法可以根据时间戳提取最后一个文档。即说要弹性给我最后一次的文档。 谢谢。 问题答案: 是的,您只需索取一个文档()并通过减少时间戳进行排序

  • 我有一个名为socialmedia的索引,并试图用这个名为eng的字段创建查询(省略了一些不必要的字段) 我从这个索引中有很多文档,其中包含eng嵌套字段,该字段也包含很多“子对象” 现在,我的主要目标是,我应该制定什么样的Elasticsearch查询来过滤这些嵌套对象 步骤1 获取具有最高date_updated值的嵌套对象 步骤2 在获得这些嵌套对象之后,执行一个总和聚合,这样我就可以为相应

  • 嘿,我有这行代码 我所做的是,当我按下一个按钮时,这个输入的值会改变,会加上1,比如1,然后2,等等。 但我想知道的是我如何得到这个输入的最后一个值,例如,如果我按下五次按钮,我如何在javascript或使用jquery中得到数字5。 我在找一些信息,但什么也找不到。 谢谢。

  • 问题内容: 我输入的是一个字符串。如何获得最后的路径段(在我的情况下是id)? 这是我的输入URL: 我必须获得我尝试过的ID: 但这是行不通的,并且肯定有更好的方法可以做到这一点。 问题答案: 是您要寻找的: 或者

  • 如何获取搜索查询匹配的文档中的所有字段?关于<code>字段</code>的ES文档指出,使用<code>*</code>,可以获得所有字段:http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-fields.html 有了这个文档和这个查询,我得到了结果,但没有返回任何字段: 放置

  • 问题内容: 可能是一个非常愚蠢的问题,检查elasticsearch中文档的字段是否存在的最佳方法是什么?我在文档中找不到任何内容。 例如,如果该文档没有字段/关键字“ price”,那么我不想返回结果。 {“ updated”:“ 2015/09/17 11:27:27”,“ name”:“ Eye Shadow”,“ format”:“ 1.5 g / 0.05 oz”,} 我可以做什么? 谢