如何使用Bulk API在ES中使用Python存储关键字 [英] How to use Bulk API to store the keywords in ES by using Python
问题描述
我必须在与我的 python 程序集成的 ElasticSearch 中存储一些消息.现在我尝试存储的消息是:
I have to store some message in ElasticSearch integrate with my python program. Now what I try to store the message is:
d={"message":"this is message"}
for index_nr in range(1,5):
ElasticSearchAPI.addToIndex(index_nr, d)
print d
这意味着如果我有 10 条消息,那么我必须重复我的代码 10 次.所以我想做的是尝试制作一个脚本文件或批处理文件.我已经检查了 ElasticSearch 指南,BULK可以使用 API.格式应如下所示:
That means if I have 10 messages then I have to repeat my code 10 times. So what I want to do is try to make a script file or batch file. I've checked the ElasticSearch Guide, BULK API is possible to use. The format should be something like below:
{ "index" : { "_index" : "test", "_type" : "type1", "_id" : "1" } }
{ "field1" : "value1" }
{ "delete" : { "_index" : "test", "_type" : "type1", "_id" : "2" } }
{ "create" : { "_index" : "test", "_type" : "type1", "_id" : "3" } }
{ "field1" : "value3" }
{ "update" : {"_id" : "1", "_type" : "type1", "_index" : "index1"} }
{ "doc" : {"field2" : "value2"} }
我所做的是:
{"index":{"_index":"test1","_type":"message","_id":"1"}}
{"message":"it is red"}
{"index":{"_index":"test2","_type":"message","_id":"2"}}
{"message":"it is green"}
我也使用 curl 工具来存储文档.
I also use curl tool to store the doc.
$ curl -s -XPOST localhost:9200/_bulk --data-binary @message.json
现在我想使用我的 Python 代码将文件存储到 Elastic Search.
Now I want to use my Python code to store the file to the Elastic Search.
推荐答案
from datetime import datetime
from elasticsearch import Elasticsearch
from elasticsearch import helpers
es = Elasticsearch()
actions = [
{
"_index": "tickets-index",
"_type": "tickets",
"_id": j,
"_source": {
"any":"data" + str(j),
"timestamp": datetime.now()}
}
for j in range(0, 10)
]
helpers.bulk(es, actions)
这篇关于如何使用Bulk API在ES中使用Python存储关键字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!