lucene 排序 分頁

2021-07-23 06:33:45 字數 1345 閱讀 7812

private string searchdir = null;

private static file indexfile = null;

/** * 讀取索引檔案

* @return

* @throws exception

*/private indexsearcher getsearcher() throws exception

/** * 中文分詞工具

* @return

*/private ikanalyzer getanalyzer()else

}/** * 根據頁碼和分頁大小獲取上一次的最後乙個scoredoc

*/private scoredoc getlastscoredoc(int pageindex,int pagesize,query query,indexsearcher searcher,sort sort) throws ioexception

/*** 查詢列表ajax方法

*/@suppresswarnings("unchecked")

public void searchselect() throws exception;

queryparser qp = new multifieldqueryparser(version,queryfields, analyzer);

query query = qp.parse(keyword);

//構建排序方式

sort sort = new sort(new sortfield("id", sortfield.type.int, true));// false公升序true降序

scoredoc lastsd = getlastscoredoc(pageno,perpagenumber, query, isearcher,sort);

//通過最後乙個元素搜尋下頁的pagesize個元素

topdocs topdocs = isearcher.searchafter(lastsd,query,perpagenumber,sort);

long count = 0l;

//獲取總條數

count = topdocs.totalhits;

//獲取資料

scoredoc hits = topdocs.scoredocs;

listlist = new arraylist();

string filefunction = "com.krkj.hntps.picture";

//裝配資料

for (int i = 0; i < hits.length; i++)

}

Lucene分頁方式

推薦的做法是為每一次分頁導航都執行一次新的 查詢。因為hits中儲存的並不是真正的document,因此可以通過hits.doc index 的方式取出在一定範圍內的document。在獲 得hits後可以用類似下面的方法進行分頁處理 private list proces s hits hits,...

Lucene分頁查詢

個人認為最好每一次分頁導航都執行一次新的 查詢。color red lucene舊版本中常用方法 color hits中儲存的並不是真正的document,因此可以通過hits.doc index 的方式取出在一定範圍內的document。在獲 得hits後可以用類似下面的方法進行分頁處理 priv...

lucene搜尋結果分頁

如題,做lucene搜尋引擎時遇到的問題,不太會web程式設計。只知道jsp支援從頁面調後台,沒用什麼框架。現在給出自己的一些設計思路,不一定高效,不一定主流。我後台有個searchservice,其中有函式,大致是這樣的 public searchresults search string key...