2017-07-05 19 views
0

私は200M +文書のsolrインスタンスを持っています。私は、これらのすべての文書を効率的に反復処理する方法を見つけたいと思います。solrのすべての文書を繰り返します。

私は、クエリのリストを定式化するために、開始パラメータを使用してみました:

http://ip:port/solr/docs/select?q=*:*&start=0&rows=1000000&fl=content&wt=python 

http://ip:port/solr/docs/select?q=*:*&start=1000000&rows=1000000&fl=content&wt=python 

... 

しかし、スタートが高すぎるとき、それは非常に遅いです。

私もこのような最初のクエリでcursorMarkパラメータを使用してみました:私は最初にすべての文書をソートし、サーバーをクラッシュしようと考えてい

http://ip:port/solr/docs/select?q=*:*&cursorMark=*&sort=id+asc&start=0&rows=1000000&fl=content&wt=python 

。悲しいことに私はその種類を迂回することはできないと思います。それを行う適切な方法は何でしょうか?

+1

ソートパラメータを削除しようとしましたか? – femtoRgon

+0

ソートパラメータは必須と思われますが、削除しようとすると不正なリクエストエラーが発生します。 – user3091275

+1

さて、おそらくあなたは_docid_(つまり、 'sort = _docid_ + asc、+ id + asc')でソートを試みることができます。私のケースでは、小さなページ(行が少ない)を – femtoRgon

答えて

0

を試し、その後なんとかではありませんので、私はそれはおそらく私がツールの使用方法を十分に知らないことだとしても、それはカーソルで動作させることができませんでした。場合

  • トラック1:@femtoRgonにより示唆されるよう_docid_を使用して並べ替えカーソルを使用あなたは私と同じ問題を抱えている場合は、ここで3曲です。私はそれを動作させることができませんでしたが、私はそれに割り当てる時間がありませんでした。
  • トラック2:@Persimmonium
  • トラック3(怠け者トラック)により示唆されるように扱わエクスポートを使用します。私は最後にやったことは、私は、増分start値を使い続けているが、私ははるかに高速である、wt=csvwt=pythonから切り替えます私は10Mのドキュメントのバッチでクエリすることができます。これは、クエリの量を制限し、代わりにcursorMarkstartを使用してのコストは一種の

幸運を償却され、あなたがより良いものを見つけた場合、あなたのソリューションを投稿してください。

1

これは非常によく知られている反パターンです。結果セットを詳しく調べるには、cursorMark featureを使用するだけです。

cursorMarkはオーケーexport handler


+0

これは私が試した2番目のことです、悲しいことに、私はSolrが200M +の文書をすべてソートしようとしていると信じています。並べ替えをバイパスすることは可能ですか? – user3091275

+1

別のオプションを付けました – Persimmonium

関連する問題