如果我有一个像这样的数据结构
[{"_id" 1
"scores" [{"student_id": 1, "score": 100"}, {"student_id": 2, "score": 80"}
]},
{"_id" 2
"scores" [{"student_id": 1, "score": 20"}, {"student_id": 2, "score": 90"}
]}]
是否可以按student_1的分数或student_2的分数对此数据集进行排序?
例如,如果我按学生1的分数降序排序,我将得到文档1,2,但如果我按学生2的分数降序排序,我将得到2,1。
我可以重新排列数据,但我不想使用另一个索引,因为有一堆元数据没有包括在上面的简洁。谢谢!
1条答案
按热度按时间0wi1tuuw1#
是的,这是可能的。你必须为你的分数使用“嵌套”字段类型,这样你就可以保持每个student_id和它的分数之间的关系。
你可以读到我写的一篇关于这个主题的文章:https://opster.com/guides/elasticsearch/data-architecture/elasticsearch-nested-field-object-field/
现在举个例子:
Map
文件
查询