gpt4 book ai didi

elasticsearch - Elastic Search通过ID和语言获取每个文档的最新信息

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

我公司有一个CMS,对其内容的访问记录到Elastic Search,每个条目都是这样的文档:

{
"datetime": "2020-08-02T17:12:54.012+01:00",
"title" : "title of the content",
"LocalNumber" : "000025",
"CodeLanguage" : "eng"
}
还有更多,但是这些是重要的。 title属性随时间变化,这意味着ID( LocalNumber)相同,但标题可能不同。
我正在尝试通过 LocalNumberCodeLanguage进行ES查询以仅检索最新文档。我可以使用字段折叠通过 LocalNumber实现:
{
"query" : {
"match_all" : {}
},
"collapse": {
"field": "LocalNumber.keyword"
},
"sort": [{"datetime": "desc"}]
}
我应该如何更改此查询以使其能够通过 LocalNumberCodeLanguage获得?

最佳答案

您也可以分别按这两个字段进行汇总,然后使用top_hits仅获取最新文档:

{
"size": 0,
"aggs": {
"by_LocalNumber": {
"terms": {
"field": "LocalNumber.keyword"
},
"aggs": {
"latest": {
"top_hits": {
"size": 1,
"sort": {
"datetime": {
"order": "desc"
}
}
}
}
}
},
"by_CodeLanguage": {
"terms": {
"field": "CodeLanguage.keyword"
},
"aggs": {
"latest": {
"top_hits": {
"size": 1,
"sort": {
"datetime": {
"order": "desc"
}
}
}
}
}
}
}
}
而且,如果您对 LocalNumberCodeLanguage的子集感兴趣,可以将它们约束在 should查询中。

关于elasticsearch - Elastic Search通过ID和语言获取每个文档的最新信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63306383/

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