簡體   English   中英

遍歷solr中的所有文檔

[英]Iterate over all documents in solr

我有一個包含200M +文檔的Solr實例。 我想找到一種有效的方法來遍歷所有這些文檔。

我嘗試使用start參數來制定查詢列表:

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

我相信嘗試先對所有文檔進行排序並使服務器崩潰。 可悲的是,我認為不可能繞開排序。 正確的做法是什么?

這是一個非常著名的反模式。 您只需要使用cursorMark功能就可以深入結果集。

如果curserMark不可行,則嘗試導出處理程序


好的,即使我可能不太了解如何使用該工具,也無法使它與光標一起使用。 如果您遇到與我相同的問題,這里有3條足跡:

  • 跟蹤一: _docid_建議,使用_docid_游標排序。 我無法使其工作,但是我沒有太多時間分配給它。
  • 軌道二:使用@Persimmonium建議的導出處理
  • 跟蹤的三(懶惰的軌道):我到底做是我一直使用的增量start值,但我從交換機wt=pythonwt=csv ,這是更快,讓我通過10M文件的批量查詢。 這限制了查詢的數量,並且使用start代替cursorMark的成本得到了攤銷

祝您好運,如果發現更好的地方,請發布您的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM