【发布时间】:2015-05-04 23:30:57
【问题描述】:
我有一个父子文档映射,而父级只有一个contact_id 字段。 当我插入新的子文档时,我需要确保这个父文档存在。它可能已经存在,也可能不存在。
所以我使用 Bulk API 插入一个父级(如果它不存在)并在一个请求中插入一个子级。
我的问题是哪种方法更快:update 与 doc_as_upsert 和 detect_noop 或 index 新记录与可能已经存在的相同数据:
{ 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 ...}
【问题讨论】:
-
我相信您无法使用 Elasticsearch 实现这一目标。
-
@VineethMohan 实现什么?它已经起作用了。我在问这些请求中哪个执行得更好。
-
为什么不对其进行基准测试?
标签: elasticsearch elasticsearch-dsl