我正在使用lucene.net生成索引並進行搜索。我實際上是通過Codeplex上的Examine項目間接使用API。我目前有一切正常工作和分頁邏輯,但是當前邏輯頁面搜索結果在搜索完成後。我不喜歡這樣做,因爲這意味着搜索可能會返回數千條記錄,只有這樣我的代碼纔會獲取所需的10-20條記錄,並丟棄剩餘的這些資源。即使每個SearchResult項目只是一個小小的3KB,執行這些搜索的內存量也會隨着時間的推移而增長,併成爲一個巨大的內存。我的共享主機只保證1GB的專用內存,所以這是我的網站的一大問題。lucene.net使用查詢分頁?
所以問題是:我如何使用lucene查詢語言單獨地以頁面方式限制結果的結果?我看了一下lucene.net從中移植過來的apache lucene項目,而且我沒有看到任何可以讓我做我正在尋找的語法。基本上我想要相當於SQL服務器必須限制查詢語言級別的行。
E.g. (這就是我們會怎麼做分頁在SQL並且只返回20條記錄不是在where子句相匹配的所有記錄)
選擇*(選擇ROW_NUMBER()OVER(ORDER BY訂購日期)作爲RoNum, 訂單ID, 訂購日期 FROM SalesOrders的 WHERE OrderCustomerName像「戴維斯%」)O WHERE ROWNUM 1到20之間
[Lucene .NET結果子集]的可能重複(http://stackoverflow.com/questions/1242333/lucene-net-result-subsets) –