我有看起来像这样的文件(这里有两个例子):
{
"id": 1234,
"title": "the title",
"body": "the body",
"examples": [
{
"evidence_source": "friend",
"source_score": 15
},
{
"evidence_source": "parent",
"source_score": 12
}
]
}
和
{
"id": 6346,
"title": "new title",
"body": "lots of content",
"examples": [
{
"evidence_source": "friend",
"source_score": 10
},
{
"evidence_source": "parent",
"source_score": 27
},
{
"evidence_source": "child",
"source_score": 4
}
]
}
数组中子文档的格式examples
总是有 anevidence_source
和 asource_score
但是这些子文档的数量是可变的,每个都有不同的evidence_source
值。
我想知道是否可以根据source_score
与特定值匹配的值之一对具有这种格式的文档进行排序evidence_source
。我真的很想能够做到这一点:
- 按相关的
source_score
位置降序对文档进行排序。文档s 的结果排序将是 1234,6346。evidence_source
friend
id
- 按相关的
source_score
位置降序对文档进行排序。文档s 的结果排序将是 6346,1234。evidence_source
parent
id
我为做这样的事情而得出的最接近的结果是1和2,但我不相信它们完全符合我想要做的事情。
关于我如何解决这个问题的任何想法?我已经考虑了一些基于examples
单独索引这些子文档的想法,但我对弹性搜索相当陌生,因此我正在寻找一些关于如何以最直接的方式实现我的目标的建议(这可能是一个梦想...)
更新:elasticsearch 邮件列表上的帖子似乎表明这是不可能的,但我想知道这里的其他人是否有任何不同的想法!