下面是一个简化的问题示例:
[
{
"key": 1
},
{
"key": 2
},
{
"key": 3,
"children": [
{
"key": 9
},
{
"key": 6
}
]
},
{
"key": 5
}
]
如果您想在这里按键排序--elasticsearch将返回
[
{
"key": 1
},
{
"key": 2
},
{
"key": 3,
"children": [
{
"key": 6
},
{
"key": 9
}
]
},
{
"key": 9
},
{
"key": 6
},
{
"key": 5
}
]
预期结果:
[
{
"key": 1
},
{
"key": 2
},
{
"key": 3
},
{
"key": 5
},
{
"key": 6
},
{
"key": 9
}
]
我们的Map没什么特别的。
这可能吗?我们需要更新Map吗?我还没有找到将嵌套对象“展平”到顶级hits数组中然后排序的方法。
我想我们要么创建另一个索引,将子对象Map到当前索引中的父对象,然后以某种方式查询这两个对象。。。或者在响应返回后将服务器端扁平化。后者的唯一问题是用户可以选择多个字段进行排序(es可以快速地为我们处理,并希望保持这种方式)。
暂无答案!
目前还没有任何答案,快来回答吧!