通过休息端点的 Elasticsearch 批量索引 api [英] Elasticsearch bulk index api via rest endpoint
本文介绍了通过休息端点的 Elasticsearch 批量索引 api的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是我的要求:
POST/_bulk{索引":{_index":测试",_type":type1",_id":1"}}{"firstname":"first_name1","lastname":"last_name1"},{"firstname":"first_name2","lastname":"last_name2"},{"firstname":"first_name3","lastname":"last_name3"}}
这里是错误:
<块引用>{ "error": "IllegalArgumentException[Malformed action/metadata line [3], 预期为 START_OBJECT 或 END_OBJECT 但找到了
[VALUE_STRING]]", "状态": 500 }
基本上,每个文档都是 {"firstname": ___, "lastname": ____} 我不想将它们包装到父字段中.我从根本上缺少什么?
解决方案
您只是缺少第二个和第三个文档的操作行,试试这样:
POST/_bulk{索引":{_index":测试",_type":type1",_id":1"}}{"firstname":"first_name1","lastname":"last_name1"}{索引":{_index":测试",_type":type1",_id":2"}}{"firstname":"first_name2","lastname":"last_name2"}{索引":{_index":测试",_type":type1",_id":3"}}{"firstname":"first_name3","lastname":"last_name3"}
Here is my request:
POST /_bulk
{ "index" : { "_index" : "test", "_type" : "type1", "_id" : "1" } }
{"firstname":"first_name1","lastname":"last_name1"},
{"firstname":"first_name2","lastname":"last_name2"},
{"firstname":"first_name3","lastname":"last_name3"}}
Here is the error:
{ "error": "IllegalArgumentException[Malformed action/metadata line [3], expected START_OBJECT or END_OBJECT but found
[VALUE_STRING]]", "status": 500 }
Basically, each document is {"firstname": ___, "lastname": ____} I don't want to wrap them into a parent field. What am I fundamentally missing?
解决方案
You're simply missing an action line for the second and third documents, try like this:
POST /_bulk
{ "index" : { "_index" : "test", "_type" : "type1", "_id" : "1" } }
{"firstname":"first_name1","lastname":"last_name1"}
{ "index" : { "_index" : "test", "_type" : "type1", "_id" : "2" } }
{"firstname":"first_name2","lastname":"last_name2"}
{ "index" : { "_index" : "test", "_type" : "type1", "_id" : "3" } }
{"firstname":"first_name3","lastname":"last_name3"}
这篇关于通过休息端点的 Elasticsearch 批量索引 api的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文