2016-08-02 8 views
1

現在、以下のプログラムを使用してIDとその重大度情報を弾性検索から抽出しています。elasticsearch_dslを使用してすべての行を取得します

from elasticsearch import Elasticsearch 
from elasticsearch_dsl import Search, Q 

client = Elasticsearch(
    [ 
     #'http://user:[email protected]:9200/', 
     'http://10.x.x.11:9200/', 
    ], 
    verify_certs=True 
) 

s = Search(using=client, index="test") 

response = s.execute() 

for hit in response: 
    print hit.message_id, hit.severity, "\n\n" 

私はデフォルトでクエリが10行を返すと考えています。私は弾性検索で10000以上の行を持っています。私はすべての情報を取得する必要があります。

すべてのレコードを取得するために同じクエリを実行する方法を教えてもらえますか?

答えて

2

あなたのtestインデックスからすべてのドキュメントを取得するためにscan() helper functionを使用することができます。

from elasticsearch import Elasticsearch, helpers 

client = Elasticsearch(
    [ 
     #'http://user:[email protected]:9200/', 
     'http://10.x.x.11:9200/', 
    ], 
    verify_certs=True 
) 

docs = list(helpers.scan(client, index="test", query={"query": {"match_all": {}}})) 

for hit in docs: 
    print hit.message_id, hit.severity, "\n\n" 
関連する問題