2010-01-23 65 views
2

我已閱讀(http://old.nabble.com/using-q%3D--,-adding-fq%3D-to26753938.html#a26805204):Solr的尋呼性能

FWIW:限制每個 要求的行數爲50,但不限制 開始並沒有太大的意義 - 在 相同量的工作是需要 手柄開始= 0 &行= 5050和 開始= 5000 &行= 50。

比他完成:

有極少數的用例 讓人們通過所有 也需要排序的行進行迭代。

是嗎?這僅僅是爲了分類結果嗎?

您建議允許用戶迭代多少個10行的每一行?

Solr 1.4是否受到同樣的限制?

回答

4

是的,對於Solr 1.4也是如此。那請問意味着start=0&rows=5050具有相同的性能,start=5000&rows=50,因爲前者必須返回5050頁的文件,而後者只有50個不到的數據傳輸 - >更快。

Solr的沒有任何辦法讓所有結果在一個單一的頁面,因爲它並沒有多大意義。作爲比較,您無法在單個查詢中獲取整個Google索引。沒有人真的需要這樣做。

您的應用程序的頁面大小應該是用戶自定義(即用戶可以選擇看10,25,50,或100個結果一次)。

默認頁面大小取決於您分頁的數據類型以及結果的真實相關程度。例如,在Google上搜索時,通常不會超出前幾個結果,因此10個元素就足夠了。另一方面,eBay更多地是關於瀏覽的結果,因此它默認顯示每頁50個結果,甚至不提供每頁10個結果。

您還必須考慮滾動。用戶在試圖瀏覽200-result page時可能會迷路,更不用說加載需要相當長的時間。

+0

Ur解決方案被接受,所以我投票支持你:-) – 2010-01-24 14:54:33

0

開始= 0 &行= 5050開始= 5000 &行= 50

取決於你如何跳開始= 5000。如果您滾動瀏覽0到4999的所有結果,忽略它們全部,然後繼續從5000滾動到5050,那麼是的,同樣數量的工作在這裏完成。最好的辦法是通過在Oracle中使用類似ROWNUM的東西來限制從數據庫本身獲取的行。

迭代通過也需要排序

不多,但肯定有一些有這個需求用例的所有行。例如CSV/Excel/PDF導出。

+0

這個問題是關於Solr,而不是關於RDBMS。不以相同的方式工作。 – 2010-01-24 12:37:43