gpt4 book ai didi

elasticsearch - 如何根据折叠项目的数量对 Elasticsearch 结果进行排序?

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

我正在使用带折叠的查询来收集某个人的一些文档,但我希望根据搜索找到匹配项的文档数量对结果进行排序。这是我的查询:

GET documents/_search
{
"_source": {
"includes": [
"text"
]
},
"query": {
"query_string": {
"fields": [
"text"
],
"query": "some text"
}
},
"collapse": {
"field": "person_id",
"inner_hits": {
"name": "top_mathing_docs",
"_source": {
"includes": [
"doc_year",
"text"
]
}
}
}

}

有什么建议吗?

谢谢

最佳答案

如果我没理解错的话,你在这里需要的是根据 inner_hits 的计数对文档进行排序,即 父文档,即计数inner_hits 基于 person_id

这意味着,结果中父文档的 _score 无关紧要。

我发现这个可行的唯一方法是使用 Top Hits Aggregation for Field Collapse Example下面是您的查询的样子。

聚合查询字段折叠示例:

POST <your_index_name>/_search
{
"size":0,
"query": {
"query_string": {
"fields": [
"text"
],
"query": "some text"
}
},
"aggs": {
"top_person_ids": {
"terms": {
"field": "person_id"
},
"aggs": {
"top_tags_hits": {
"top_hits": {
"size": 10
}
}
}
}
}
}

请注意,我假设 person_idkeyword 或任何 numeric 类型。此外,如果您仔细查看查询,我已经提到了 "size":"0"。这意味着我只返回聚合结果。

另外需要注意的是,上面的聚合与Field Collapse in Search Request无关您在问题中发布的功能。只是使用此聚合,您的结果可以采用类似的方式进行格式化。

如果这有帮助,请告诉我!

关于elasticsearch - 如何根据折叠项目的数量对 Elasticsearch 结果进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55206608/

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