使用helpers.bulk无法更新index数据

作者 OneAtletico | 发布于2018年09月12日 | 阅读数:78

Code:


actions = [ {
    '_index' : indexname,
    '_type' : projectname,
    '_id' : d['P']['R'],
    '_source' : d
}
for d in data_package
]
helpers.bulk(es, actions)


 Question:
  • 如果index本身不存在,可以正常创建index并插入数据。
  • 如果index本身存在,运行后不报错,但无法更新数据(ES/Kibana端未看到更新的数据)。
  • 指定_op_type为'update'后也是一样的结果,不报错但无法更新。

 
Remarks:
  • 数据量并不大,index中已有大概2000条数据,待更新量约700条。

已邀请:

JackGe

赞同来自:

我在https://elasticsearch-py.readt ... ample看到使用bulk写入数据的例子,区别是这里使用doc,您使用_source,不知道是不是elasticsearch-py版本不同导致的
def gendata():
mywords = ['foo', 'bar', 'baz']
for word in mywords:
yield {
"_index": "mywords",
"_type": "document",
"doc": {"word": word},
}

bulk(es, gendata())

 

laoyang360 - [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:blog.csdn.net/laoyang360

赞同来自:

bulk请求的时候,如果出错会有错误返回的。你可以根据错误结果进行进一步排查。
java的一次拍错如下:https://blog.csdn.net/laoyang3 ... 57798

zqc0512 - andy zhou

赞同来自:

python的是不是支持不是很好,你多找几个高版本的试下。
这玩意依赖ES接口太多。

medcl - Elastic 🇨🇳 !

赞同来自:

你看一下bulk 调用返回的内容是什么啊,错误都会告诉你的

要回复问题请先登录注册