2017-01-30 39 views
0

我是SOLR的新手,我正在使用SOLRQuery查詢數據庫並返回下載的數據。返回的行數以百萬計。SOLR分頁

流程類似於 在GUI中,單擊下載按鈕>通過REST,Java代碼使用SOLRQuery來獲取數據並將其返回到GUI,其中數據作爲文件下載。

由於行數太多,我很少擔心獲取數據和下載文件所需的時間。那麼,是否需要在SOLR查詢級別分頁?我的意思是我應該使用SOLR Query的Deep分頁來提高性能? 我添加下面的代碼:

HttpSolrServer searcherServer = new HttpSolrServer(url); 
SolrQuery solrQuery = new SolrQuery(); 
solrQuery.setRequestHandler("/export"); 
solrQuery.setQuery(query); 
solrQuery.set("fl","field1"); 
solrQuery.setSort(SolrQuery.SortClause.asc("field1")); 
QueryResponse resp = searcherServer.query(solrQuery); 

schema.xml中我加docValues =「true」將Field 1和solrconfig.xml中我加入這裏給出https://home.apache.org/~ctargett/RefGuidePOC/jekyll-full/exporting-result-sets.html

+0

你是否親自嘗試過? – Mysterion

+0

你在設計出口嗎?分頁是由不同的人逐頁完成的。我不知道用戶通過數百萬頁手動頁面。 – cheffe

+0

是的,我正在設計出口kinda – MadxG

回答

0

有一個專門的requestHandler導出結果套 - /export請求處理程序。這是針對以下情況進行調整的:您將返回數百萬行,並希望返回完整的點擊數。

沒有爲出口requestHandler點有幾個要求:

的所有字段進行排序,並遠銷必須docValues設置爲true。

所有查詢必須包含排序和fl參數,否則查詢將返回錯誤。

http://localhost:8983/solr/core_name/export?q=my-query&sort=severity+desc,timestamp+desc&fl=severity,timestamp,msg 

請求處理程序是在Exporting result sets維基頁面詳細介紹。

+0

我要試一下,並更新它是否幫助我。謝謝! – MadxG

+0

我在客戶端使用SOLR查詢(這是一個java代碼)。我試圖使用導出,但我想我錯過了一些東西。它給了我一個例外「客戶端發送的請求在語法上不正確({msg = XMLWriter不支持版本2,代碼= 400})」 有什麼建議嗎? – MadxG

+0

我已添加我的代碼。請讓我知道我錯過了什麼。 – MadxG