如何将三条Elasticsearch PUT单文档命令合并为一条?
能否将多个Elasticsearch单文档PUT命令合并为一条执行?
当然可以,Elasticsearch的_bulk API专门用来批量执行多个文档操作,能把你给出的三个单文档写入请求合并成一次调用完成。
下面是合并后的命令,注意_bulk的格式要求:每个操作由两行组成——第一行声明操作类型(这里用index,和单文档PUT效果一致)、目标索引及文档ID;第二行是文档的具体数据,所有内容用换行分隔,最后一行需保留空行:
POST /_bulk {"index": {"_index": "vehicles", "_id": "123"}} { "make" : "Honda civic", "color" : "Blue", "from": "Japan", "size": "Big", "HP" : 250, "milage" : 24000, "price": 19300.97 } {"index": {"_index": "vehicles", "_id": "456"}} { "make" : "honda civic", "color" : "Blue", "from": "Singapore", "size": "Big", "HP" : 250, "milage" : 24000, "price": 19300.97 } {"index": {"_index": "vehicles", "_id": "789"}} { "make" : "Toyota", "color" : "Blue", "from": "Japan", "size": "Big", "HP" : 250, "milage" : 24000, "price": 19300.97 }
需要注意的是,_bulk请求必须用POST方法发送,不能用PUT。如果某个操作执行失败,不会影响其他操作的执行,返回结果里会单独标注每个操作的状态。
内容的提问来源于stack exchange,提问作者william007
相关产品推荐
相关产品推荐

