2016-04-29 6 views
-1

Я упругая документ, структурированный [упрощенный], как это:Упругие Поиск Sub Фильтры списка

{ 
"Contest": { 
    "Name": "Room1", 
    "Participants": [ 
    { 
    "PlayerID": "tester1", 
    "Score": "30" 
    }, 
    { 
     "PlayerID": "tester2", 
     "Score": "40" 
    }, 
    { 
     "PlayerID": "tester3", 
     "Score": "10" 
    } 
    ] 
} 

}

Как я могу запросить это и получить обратно результат, конкурса, и только Объект участника со счетом более 35?

Когда я запрашиваю объект и использую фильтр, я возвращаю весь список участников, что не то, что мне нужно; Мне нужен только список объектов, удовлетворяющих критериям поиска. Нужно ли мне реструктурировать вложенные документы?

ответ

0

Использование inner_hits как:

{ 
"query": { 
    "nested": { 
    "path": "Participants", 
    "query": { 
     "range": { 
     "Participants.score": { 
      "from": 35 
     } 
     } 
    }, 
    "inner_hits" : {} 
    } 
    } 
} 

Fetch требуется результаты от inner_hits.

+0

Спасибо, это то, что я нашел, но так же, как примечание: выход денормализовывает структуру, которую я считаю менее идеальным. – Andy

+0

Вы нашли другое решение, которое не денормализует структуру? –

Смежные вопросы