我试图以与数组相同的顺序返回数组中的项目页面。例如,有10个项目。用户按指定的顺序(4,1,7,2)
保存了4个项目body: {
query: {
bool: {
must: [
{
ids: {
values: ['4', '1', '7', '2']
}
}
]
}
}
}
搜索以下内容将返回4项,但它是随机顺序。告诉ES将订单保留为数组的任何方法吗?
答案 0 :(得分:0)
如果其他人遇到此问题:
所以我试图编写一个动态脚本来对ES (see here)中的项进行排序,但没有运气。我最终意识到我使用的托管ES仅在专用集群上提供动态脚本,因为存在安全漏洞。
答案 1 :(得分:0)
这看起来不必要地复杂。我会用以下代码:
GET /your-index/your-type/_mget
{
"ids" : [ "4", "1", "7", "2" ]
}
响应正文还包含一个docs数组,其中包含每个文档的响应,其顺序与请求中指定的顺序相同。