gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 22:16:54 25 4
gpt4 key购买 nike

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

我想在 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”。

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

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

非常感谢您的任何提示!

最佳答案

您可以尝试使用此查询:

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

关于Elasticsearch 获取给定字段的最后一个文档(如果存在),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36354110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com