2016-06-30 1 views
0
How can i fetch nested object in elastic search ? 

{ 
      "_index": "userinfo", 
      "_type": "userdetails", 
      "_id": "2", 
      "_score": 1, 
      "_source": { 
       "id": "2", 
       "name": "Robert Mark", 
       "age": 42, 
       "email": "[email protected]", 
       "userType": { 
        "id": "3", 
        "type": "End User" 
       }, 
       "hobbies": [ 
        { 
        "id": "3", 
        "description": "Writing Books" 
        }, 
        { 
        "id": "4", 
        "description": "Gardening" 
        } 
       ] 
      } 
     } 

これは私のjson構造です。趣味の説明が「ガーデニング」であるすべてのレコードを取得したいと考えています。弾性検索で入れ子オブジェクトを取得する方法は?

私は弾性検索には新しく、誰かが知っているならこれを助けてください。

"説明":あなたはあなたの趣味オブジェクトのnestedマッピングタイプを事前に作成場合

{ 
    "query": { 
    "nested": { 
     "path": "hobbies", 
     "query": { 
     "match": { 
      "hobbies.description": "Gardening" 
     } 
     } 
    } 
    } 
} 

答えて

1

これはあなたのクエリです。しかし、デフォルトでは `nested 'の代わりにobjectが使われます。

{ 
    "query" : { 
    "match" : { 
     "hobbies.description" : "Gardening" 
    } 
    } 
} 

クエリは実質的に同じで、実際にはネストされたバージョンのサブセットです。

+0

ありがとう@israelst。それは今働いている。 –

0

israelstが正しい: "ガーデニング"

+0

私の趣味オブジェクトはすでにネストされた型としてマップされていますが、あなたのソリューションはまだ動作していません@Field(type = FieldType.Nested) \tプライベートリスト趣味;とにかく答えに感謝します。 –

関連する問題