Lucene_demo04_分页

来源:互联网 发布:网络配音兼职网站推荐 编辑:程序博客网 时间:2024/06/06 04:18
Java代码  
  1. /** 
  2.  * 分页 
  3.  */  
  4. public class DispageTest {  
  5.   
  6.     // 分页类  
  7.     private void testSearchIndex(int firstResult, int maxResult) throws Exception {  
  8.         IndexSearcher indexSearcher = new IndexSearcher(LuceneUtils.directory);  
  9.         QueryParser queryParser = new MultiFieldQueryParser(Version.LUCENE_30, new String[] { "title""content" }, LuceneUtils.analyzer);  
  10.         Query query = queryParser.parse("2013");  
  11.         TopDocs topDocs = indexSearcher.search(query, 50);// 查询50条结果  
  12.         int count = topDocs.totalHits;// 总的记录数  
  13.         int scoreCount = Math.min(count, firstResult + maxResult);// 截止条数  
  14.         ScoreDoc[] scoreDocs = topDocs.scoreDocs;  
  15.   
  16.         // 将搜索出的doc转换为model保存在List中  
  17.         List<Article> articleList = new ArrayList<Article>();  
  18.         for (int i = firstResult; i < scoreCount; i++) {  
  19.             int index = scoreDocs[i].doc;  
  20.             Document document = indexSearcher.doc(index);  
  21.             Article article = DocumentUtils.document2Article(document);  
  22.             articleList.add(article);  
  23.         }  
  24.   
  25.         // 输出查询结果  
  26.         for (Article article : articleList) {  
  27.             System.out.println(article.getId());  
  28.             System.out.println(article.getTitle());  
  29.             System.out.println(article.getContent());  
  30.         }  
  31.     }  
  32.   
  33.     @Test  
  34.     public void dispage() throws Exception {  
  35.         this.testSearchIndex(2010);// 从查询出来的索引值中,从第20条开始取后面的10条数据  
  36.     }  
  37. }  
0 0
原创粉丝点击