Elasticsearch 全量遍历数据

1,利用分页,from,to参数,但是当数据量特别大的时候(大约100w),分页是不现实的,排序排不开。

2,利用scan功能。

上 Python代码

 1 from elasticsearch import Elasticsearch
 2 from elasticsearch import helpers
 3 
 4    es = Elasticsearch(config['es_server'])
 5 
 6     index_v="teacher-center-single_question_count"
 7     doc_type_v="single_question_count"
 8 
 9     query={"query" : {"match_all" : {}}}
10 
11     scanResp= helpers.scan(client= es, query=query, scroll= "10m", index= index_v , doc_type=doc_type_v , timeout="10m")
12 
13     for resp in scanResp:
14         qid = resp['_id']

 

3,如何取出两个数组中的 不同的部分

 

def find_diff(a,b):

    common = list(set(a).intersection(set(b)))
    #print common

    alld = list(set(a).union(set(b)))
    #print alld


    diff  = list(set(alld).difference(set(common)))
    #print diff


    return diff

 

posted on 2017-04-25 06:17  fupeng  阅读(5698)  评论(0编辑  收藏  举报

导航