gpt4 book ai didi

elasticsearch - 如何在 Elasticsearch 中对多个索引的结果进行排序和限制

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

我有4个索引,分别称为index1,idndex2,index3和index4

可以说结果集中有数百个结果
现在我只想要

top 10 rows/result from index1
+
top 10 rows/result from index2
+
top 10 rows/result from index3
+
top 10 rows/result from index4

最佳答案

您可以使用Elasticsearch的Multi-Search API。
请勿在网址中提供任何索引名称,而应在网址中使用_msearch关键字,如下所示:

GET _msearch
{"index" : "index1"}
{"query" : {}, "from" : 0, "size" : 10}
{"index" : "index2"}
{"query" : {}, "from" : 0, "size" : 10}

引用- https://www.elastic.co/guide/en/elasticsearch/reference/current/search-multi-search.html

或者,您也可以对多个索引执行单个查询,然后使用按索引名称进行的聚合将结果分组;将top_hits大小指定为10,以从每个索引中获取前10个匹配。
GET index1,index2,index3/_search
{
"size": 0,
"query": { ... },
"aggs": {
"indexes": {
"terms": {
"field": "_index",
"size": 50
},
"aggs": {
"hits": {
"top_hits": {
"size": 10
}
}
}
}
}
}

关于elasticsearch - 如何在 Elasticsearch 中对多个索引的结果进行排序和限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57123806/

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