У меня есть документы, которые выглядят так (вот два примера):
{
"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
всегда будет иметь evidence_source
и a source_score
, но будет различное количество этих субдокументов -, каждый с разными значениями evidence_source
.
Мне интересно, можно ли сортировать документы в этом формате на основе одного из значений source_score
, совпадающего с определенным значением evidence_source
. Мне бы очень хотелось иметь возможность:
source_score
убыванию, где связанный evidence_source
равен friend
. В результате порядок документа id
s будет равен 1234,6346.source_score
, где связанный evidence_source
равен parent
. В результате порядок документа id
s будет 6346,1234.Ближайшие результаты, которые я получил для чего-то подобного, это 1 и 2 , но я не верю, что они точно соответствуют тому, что я хочу сделать..
Есть идеи, как мне это сделать? Я обдумывал некоторые идеи, основанные на индексировании этих examples
под-документов по отдельности, но я довольно новичок в эластичном поиске, поэтому ищу несколько советов о том, как достичь моей цели наиболее простым способом (. что может быть несбыточной -мечтой...)
Обновление:Сообщение в списке рассылки elasticsearch , кажется, указывает на то, что это НЕ возможно, но мне интересно, есть ли здесь кто-то еще есть разные идеи!