Elasticsearch-py Bulk Percolate功能

时间:2017-04-24 15:08:17

标签: elasticsearch-py elasticsearch-percolate

尝试将批量渗透功能用于Elasticsearch-py(即mpercolate),但无法在线查找示例。我可以使用percolate功能,所以我可以让它工作:

doc = {'doc' : {'field1' : 'this is a value', 'field2' : 'this is another value'}}
res = es.percolate(index = 'my_index', doc_type = 'my_doc_type', body = doc)

我到目前为止阅读的文档似乎暗示如果我想进行批量提交,我需要将标题和正文作为字符串发送,用换行符分隔。因此我尝试过:

head = {'percolate' : {'index' : 'my_index', 'type' : 'my_doc_type'}}    
doc = {'doc' : {'field1' : 'this is a value', 'field2' : 'this is another value'}}
doc2 = {'doc' : {'field1' : 'values and values', 'field2' : 'billions of values'}}

query_list = [head, doc, head, doc2]
my_body = '\n'.join([str(qry) for qry in query_list])

res = es.mpercolate(body = my_body)

这给了我一个通用的“elasticsearch.exceptions.TransportError”。任何人都有一个可以适应的工作实例吗?

1 个答案:

答案 0 :(得分:0)

您不必自己序列化数据,只需传递query_list作为正文,它应该做正确的事情