親子ドキュメント マッピングがあり、親には contact_id フィールドが 1 つしかありません。そして、新しい子ドキュメントを挿入するときに、この親ドキュメントが存在することを確認する必要があります。既に存在する場合と存在しない場合があります。
そのため、Bulk API を使用して、存在しない場合は親を挿入し、1 つの要求で子を挿入します。
私の質問は、どちらの方法がより高速かということです: update
withdoc_as_upsert
およびdetect_noop
ORindex
おそらく既に存在する同じデータを持つ新しいレコード:
{ update: { _index: 'index_name', _type: 'contact', _id: 25, _routing: 14}}
{ doc: { contact_id: 25 }, doc_as_upsert: true, detect_noop: true }
{ index: { _index: 'index_name', _type: 'event', _routing: 14, _parent: 25}}
{ ... event document body ...}
また
{ index: { _index: 'index_name', _type: 'contact', _id: 25, _routing: 14}}
{ contact_id: 25 }
{ index: { _index: 'index_name', _type: 'event', _routing: 14, _parent: 25}}
{ ... event document body ...}