2017-04-24 5 views
0

대량 여과 기능을 Elasticsearch-py (즉, mpercolate)에 사용할 수는 있지만 온라인에서는 사례를 찾을 수 없습니다. 나는 관류 기능을 사용할 수있어, 그래서 나는이 일을 얻을 수 있습니다탄성 검색 -py 대량 여과 기능

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"를 제공한다. 누구나 적응할 수있는 실제 사례가 있습니까?

답변

0

직접 데이터를 serialize 할 필요가 없으며 query_list을 본문으로 전달하면 올바른 작업을 수행 할 수 있습니다.