2017-01-27 4 views
0

こんにちは、私のデータは次のように構成されています弾性検索を使用してオブジェクトのキーを照会する方法は?

var query = { 
      index: 'firebase', 
      type: 'student', 
      "body": { 
      "query": { 
       "bool": { 
       "must": [ 
     { 
     "nested": { 
      "path": "subjects", 
      "query": { 
      "bool": { 
       "must": [ 
       { "exists": { "field": english } } 
       ] 
      } 
      } 
     } 
     } 

    ] 

student{ 
subjects{ 
    biology:{ 
    0: "A2-Level" 
    1:"AS-Level" 
    2:"University" 
    } 
} 
} 

私の主な指標は

"mappings":{"student":{"properties":{"subjects":{"type":"nested","properties":{"biology":{"type":"string"},"english":{"type":"string"}}} 

Imは現在、この検索を行うと、次のようにので、私の性質があり、学生であります

英語を勉強している学生を返す。しかし何も返されていないのですか?誰かが私が間違っている場所を提案することはできますか?

+0

をフィールドだけでなく、 '英語' – Val

答えて

3

あなたはので、代わりに英語subjects.englishフィールドをチェックする必要があり、クエリは次のようになります。あなたが `subjects.english`の存在を確認する必要があり

{ 
"query": { 
    "bool": { 
    "must": [ 
     { 
      "nested": { 
       "path": "subjects", 
       "query": { 
       "bool": { 
        "must": [ 
         { 
          "exists": { 
          "field": "subjects.english" 
          } 
         } 
        ] 
       } 
       } 
      } 
     } 
    ] 
    } 
} 
} 
+0

これは何らかの理由でもう動作しないようですか?なぜどんなアイデア?私は弾力的な検索のドキュメントをチェックしました –

+0

あなたが検索しているフィールドの参照またはマッピングの例外に関して、より詳細な情報を提供できる場合...検索応答で期待するドキュメント –

+0

気にしないでください!!しばらく私の頭を傷つけていたが、私の質問には後にスペースがあることに気づいた:) –

関連する問題