2017-06-29 18 views
0

検索と検索の違いは何ですか? Search()から検索と検索elasticsearchの違い

>>> Search 
<class 'elasticsearch_dsl.search.Search'> 
>>> search 
<module 'elasticsearch_dsl.search' from '/usr/local/lib/python2.7/dist-packages/elasticsearch_dsl/search.pyc'> 

私はelasticsearch_dsl.search.Searchオブジェクトを得ました。そしてElsasticsearch.search()から私は伸縮性のあるデータを持っています。どのように私はすべて(最初の5つのオブジェクトではない)elasticdataSearch()から得ることができますか? Search()から検索オブジェクトを作成することはできますか?

答えて

1

elasticsearchのすべてのデータをPythonで取得したい場合は、Searchオブジェクトのscan()メソッドを呼び出すことによってscanヘルパーを使用します。

あなたが to_dict(True)を呼び出す( _id_indexなどのようなものを)だけでなく、メタデータが必要な場合は代わりにラップされたオブジェクトの dictだけで、直接、またはすべてのヒットに応答のいずれかに to_dict()を呼び出す取得します。

+0

OK、私はそれを得ました。しかし、私は本当に多くのデータを持っており、 'scan()'はそれを処理するのに時間がかかります。もう一度私を助けてくれますか?私が 'Search'オブジェクトでforループを打つと、10要素しか得られません。だから私は 'size'を使う必要があります、' size = 'max''のようなものを作るにはどうしたらいいですか? –

+1

最大の許容サイズは、そのユースケースに対して最適化されているので、 'scan'を使う必要のあるデータがたくさんある場合は、かなり低くなります。それは、ストリーム処理が可能になるように、すべてのデータを徐々に取得するという繰り返し要求を行います。データの処理を開始するのを待つ必要はありません。 –

関連する問題