我有一个Elasticsearch设置,有多个索引(假设a,B,c,d,e和f)。我的目标是总共检索20个文档,每个索引中正好有4个文档。但是,如果任何索引的文档少于4个,我想从其他索引中填充剩余的文档。
举例来说:
a = 4
b = 4
c = 4
d = 4
e = 4
Total = 20
字符串
如果任何索引的文档少于4个:
a = 3
b = 4 or 5
c = 4 or 5
d = 4 or 5
e = 4 or 5
Total = 20
型
Elasticsearch查询或有效负载应该是什么?
现行办法:
{
"index": [
"_all"
],
"body": {
"query": {
"match_all": {}
},
"size": 20,
"sort": {
"created_at": "desc"
}
}
}
型
任何帮助或指导都是值得赞赏的。
先谢谢你了!
1条答案
按热度按时间nlejzf6q1#
我可能会使用multi-search API来做这件事,并分别查询每个索引,如下所示:
字符串
还请注意,我每个索引检索的命中数超过4个,对于索引的命中数少于4个的情况,您可以从另一个索引中选择另一个命中数。