2011-06-24 28 views
2

我有一個問題,當我需要基於當前文檔ID &排序參數取得下一個& solr索引中的前一個文檔。Apache Solr得到結果中的下一個和上一個記錄

do while true 
fetch 500 index based on sort 
use xpath to find current id in resultset 
if found 
    previous = preceding-sibling 
    next = following-sibling 
    break 
else 
    if numfound == amount of fetched document 
    break 
    else 
    amount += 500 
    next loop 
    /if 
/if  
/do 

有沒有更好的解決方案使用solr查詢來完成這件事?

感謝

+0

這通常是一個壞主意。 –

+0

我同意這是一個壞主意,因爲它的資源消耗,但其需求仍然需要完成,我使用不同的方法取決於引用,看看我的臨時解決方案 – Komang

+0

是的,有時我們會得到奇怪的要求......有通常沒有好的方法來做到這一點(不是專門用於Solr,而是用任何數據存儲),你的解決方法是相當不錯的。 –

回答

0

到目前爲止,我沒有發現任何變通解決辦法這是那裏有在結果沒有參考當前項目的順序位置

所以暫時的解決方法是保持傳統的方式

  1. 如果完全沒有引用序號位置(例如:來自谷歌)提取有限行的結果集,請使用xpath找到序號位置否則獲取下一個集合

  2. 如果那裏有參考的順序位置,取結果集順序從1到序號+ 1與第一個特殊的治療和最後

,如果你們找到更好的辦法來做到這一點,請分享。

相關問題