package it.heima.luceneInde; import org.apache.lucene.document.Document; import org.apache.lucene.index.DirectoryReader; import org.apache.lucene.index.Term; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.ScoreDoc; import org.apache.lucene.search.TermQuery; import org.apache.lucene.search.TopDocs; import org.apache.lucene.store.FSDirectory; import org.junit.Test; import java.io.File; import java.io.IOException; public class Limit { @Test public void limit() throws IOException { //分页用两个参数 int page=2; //第2页 int pagenum=2; //每页显示2条 //获取查询对象 IndexSearcher indexSearcher = new IndexSearcher(DirectoryReader.open(FSDirectory.open(new File("f:\\test")))); //执行查询,此处用此处用词条查询 TermQuery termQuery = new TermQuery(new Term("content","格力")); TopDocs topDocs = indexSearcher.search(termQuery, page*pagenum); //第一页显示2条,第二页显示2条+第一页2条=4条 int totalHits = topDocs.totalHits;//查询总数 ScoreDoc[] scoreDocs = topDocs.scoreDocs;//查询分数的数组 for(int i=(page-1)*pagenum;i< page*pagenum;i++){ //选择读取pagenum ScoreDoc scoreDoc = scoreDocs[i]; float score = scoreDoc.score;//获取分数 int id = scoreDoc.doc;//获取该分数对应的id Document doc = indexSearcher.doc(id);//根据id查询文档 String content = doc.get("content"); String pid = doc.get("pid"); System.out.println("序号:"+pid+"-----content="+content); } } }
结果: