如何使用Python在ES中自动生成id

2024-09-22 14:27:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要像使用XPOST一样存储唯一的auto id

因为每次我启动程序,数据都会被覆盖。在

但是,我找不到在Python中自动生成id的示例

你能告诉我有没有好的例子吗?在

我的代码:

def saveES(output,es):
    bodys=[]
    i=0
    while i<len(output)-1:  #output[len(output)-1] is space
            json_doc=json.dumps(output[i]) 
            body = {
                    "_index":"crawler",
                    "_type":"typed",
                    "_id":saveES.counter,
                    "_source":json_doc
                    }
            i+=1
            bodys.append(body)
            saveES.counter+=1
    helpers.bulk(es,bodys)

Tags: 数据程序idjson示例autooutputdoc
2条回答

如果使用的是ES Python Client,则没有ID将无法使用es.create(...),而应该改为{}。在

它们都调用Elasticsearch Index API,但是es.createop_type参数设置为create,并将{}设置为index。在

如果ID已经存在,create操作被设计为失败,因此它不会接受没有ID的调用

如果索引没有id的文档,则不需要在python中执行此操作,Elasticsearch将automatically create a unique id。但是,如果出于某种原因想在python中生成id,可以使用uuid。在

相关问题 更多 >