2012-08-08 59 views
0

我使用這個模式返回的所有數據:Solr的JSON請求沒有立即

http://localhost:8983/solr/select/?q=hello&wt=json&json.wrf=?&indent=true&hl=true&hl.fl=title 

它返回類似:

?({ 
    "response":{"numFound":100,"start":0,"docs":[ 
     { 
      "id":"1234", 
      "title":"Something Hello" 
      .. 
      .. 
     }, 
     ... bla bla, to the end 
    ] 
}) 

它可明顯看出頭100 records found但項目{ bla bla... }內部確實是just 10。這實際上是指數中的100個項目。它必須非常準確地顯示100.

它只顯示前10項嗎?
我在模式中錯過了什麼?

回答

4

100是Solr找到的記錄總數,但默認情況下它一次只返回10個記錄。

嘗試將URL添加到&rows=100以一次獲取所有100個結果。

編輯:在一個真實的應用程序中,您可能想要在頁面中獲取結果,以便您不會耗盡內存,試圖一次獲取數十億個結果。在這種情況下,您可以組合startrows選項。

例如在一個時間獲取20個結果:

  • 首先要求將使用&start=0&rows=20

  • 第二個請求將使用&start=20&rows=20

  • ...等,直到你已經取得了所有的結果。

這類似於SQL中使用OFFSETLIMIT關鍵字,如果你熟悉這些。

+0

Oooops,那麼高級的其他結果我不知道呢?下一次搜索如何包括200?不能用一個通用設置自動完成嗎? – 2012-08-08 07:52:56

+0

@ 4lvin我編輯了我的答案,以提供更多信息,這些信息可以幫助您。 – 2012-08-08 07:56:59

+0

所以你的意思是,顯示所有的搜索應該是'rows = 999999'那樣? – 2012-08-08 07:59:53