2016-04-29 19 views
-1

私は弾性文書を持っている、このように[単純化]:弾性検索サブリストフィルター

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

}

どのように私はこれだけを照会し、コンテストの結果を、取り戻す、とすることができますスコアが35を超えるParticipantオブジェクト?

私はオブジェクトを照会してフィルタを使用すると、必要なものではない参加者のリスト全体を返すことができます。検索基準に合致するオブジェクトのみのリストが必要です。入れ子になった文書で再構成する必要がありますか?以下のような

答えて

0

使用inner_hits

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

inner_hitsから必要な結果を取得します。

+0

ありがとう、それは私が見つけたものですが、注釈として出力されます。構造が非正規化されています。 – Andy

+0

構造を非正規化しない他の解決策を見つけましたか? –