使用批量 API 将批次更新到 elasticsearch 存储中
upserting batches into elasticsearch store with bulk API
我有大量具有相同索引和相同类型但 ID 明显不同的文档。我想更新现有的或批量插入新的。如何使用批量索引 API 实现它?我想做类似下面的事情,但它会抛出错误。基本上,我想批量插入多个具有相同索引和相同类型的文档。
curl -s -H "Content-Type: application/json" -XPOST localhost:9200/_bulk -d'
{ "index": {"_type": "sometype", "_index": "someindex"}}
{ "_id": "existing_id", "field1": "test1"}
{ "_id": "existing_id2", "field2": "test2"}
'
你需要这样做:
curl -s -H "Content-Type: application/json" -XPOST localhost:9200/someindex/sometype/_bulk -d'
{ "index": {"_id": "existing_id"}}
{ "field1": "test1"}
{ "index": {"_id": "existing_id2"}}
{ "field2": "test2"}
'
由于所有文档都在同一个 index/type 中,因此请将其移至 URL 并且只为您要批量更新的每个文档指定 _id
。
我有大量具有相同索引和相同类型但 ID 明显不同的文档。我想更新现有的或批量插入新的。如何使用批量索引 API 实现它?我想做类似下面的事情,但它会抛出错误。基本上,我想批量插入多个具有相同索引和相同类型的文档。
curl -s -H "Content-Type: application/json" -XPOST localhost:9200/_bulk -d'
{ "index": {"_type": "sometype", "_index": "someindex"}}
{ "_id": "existing_id", "field1": "test1"}
{ "_id": "existing_id2", "field2": "test2"}
'
你需要这样做:
curl -s -H "Content-Type: application/json" -XPOST localhost:9200/someindex/sometype/_bulk -d'
{ "index": {"_id": "existing_id"}}
{ "field1": "test1"}
{ "index": {"_id": "existing_id2"}}
{ "field2": "test2"}
'
由于所有文档都在同一个 index/type 中,因此请将其移至 URL 并且只为您要批量更新的每个文档指定 _id
。