Elasticsearch сортирует по одному вложенному ключу документа в массиве

У меня есть документы, которые выглядят так (вот два примера):

{
    "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. В результате порядок документа ids будет равен 1234,6346.
  • Сортировка документов по убыванию source_score, где связанный evidence_sourceравен parent. В результате порядок документа ids будет 6346,1234.

Ближайшие результаты, которые я получил для чего-то подобного, это 1 и 2 , но я не верю, что они точно соответствуют тому, что я хочу сделать..

Есть идеи, как мне это сделать? Я обдумывал некоторые идеи, основанные на индексировании этих examplesпод-документов по отдельности, но я довольно новичок в эластичном поиске, поэтому ищу несколько советов о том, как достичь моей цели наиболее простым способом (. что может быть несбыточной -мечтой...)

Обновление:Сообщение в списке рассылки elasticsearch , кажется, указывает на то, что это НЕ возможно, но мне интересно, есть ли здесь кто-то еще есть разные идеи!

6
задан Community 23 May 2017 в 12:32
поделиться