2016-07-12 5 views
4

Elasticsearchにはids idでドキュメントを検索するクエリがあります。 私は、ネストされたクエリでそれを使用しようとしました:IDでネストされたドキュメントを検索

{ 
    "query": { 
     "nested": { 
      "path": "nestedField", 
      "query": {"ids":{ "values": ["nestedDocumentId" ] }}, 
      "inner_hits" : {}  
     } 
    } 
} 

しかし、このクエリではなく、ネストされた時に、親ドキュメントIDで検索します。
idsネストされたドキュメントをIDで検索するクエリを使用できますか?

+0

なぜそれが必要ですか?ネストされたドキュメントのIDは自動的に作成され、そのIDを制御することはできません。 –

+0

@AndreiStefan _nested objects_を使用して* "hasMany" *リレーションシップを作成しています。私は_parent-child_を使用しないことにしました。なぜなら、_nested objects_のアプローチはより速いからです。私は1つまたは複数のIDで任意のドキュメント(ネストされているかどうか)のオブジェクトを見つける必要があります。 –

答えて

4

ネストされたドキュメントのIDは自動的に作成され、そのIDを制御することはできません。

解決策は、ネストされたドキュメントitslefの標準フィールドとしてidをインデックス化し、idsの代わりにtermsフィルタを実行することです。

関連する問題