SearcherFile.java
上传用户:zhihansy
上传日期:2014-12-04
资源大小:7241k
文件大小:2k
源码类别:

搜索引擎

开发平台:

Java

  1. package com.lucene;
  2. import java.io.IOException;
  3. import org.apache.lucene.analysis.Analyzer;
  4. import org.apache.lucene.analysis.standard.StandardAnalyzer;
  5. import org.apache.lucene.document.Document;
  6. import org.apache.lucene.queryParser.MultiFieldQueryParser;
  7. import org.apache.lucene.queryParser.ParseException;
  8. import org.apache.lucene.search.Hits;
  9. import org.apache.lucene.search.Query;
  10. import org.apache.lucene.search.Searcher;
  11. import java.util.*;
  12. import jeasy.analysis.MMAnalyzer;;
  13. /*
  14.  * @CopyRigth(R) 城市通
  15.  * @author 申华锋 E-mail:leonshine@qq.com
  16.  * @version 创建时间:Mar 9, 2008 12:12:45 AM
  17.  * @description 
  18.  */
  19. public class SearcherFile {  
  20. private static int hitslength = 0;
  21. public static List search(Searcher searcher, String[] q, int startIndex,int endIndex)
  22. throws IOException, ParseException {
  23. //Analyzer analyzer = new StandardAnalyzer();
  24. Analyzer analyzer = new MMAnalyzer();//实例化jeasy分词器
  25. String[] fields = { "title", "description", "tag", "userName" };
  26. Query query = MultiFieldQueryParser.parse(q, fields, analyzer);
  27. Hits hits = searcher.search(query);
  28. hitslength = hits.length();
  29. System.out.println("Hits总长度"+hits.length());
  30. List lst = new ArrayList();
  31. /*for (int i = 0; i < hits.length(); i++) {
  32. Document doc = hits.doc(i);
  33. //取出ID,存入List
  34. lst.add(doc.get("productId"));
  35. }*/
  36. if(endIndex>=hits.length())
  37.    endIndex=hits.length()-1;
  38.   List docs=new ArrayList();
  39.   for(int i=startIndex;i<=endIndex;i++){
  40.    Document doc=hits.doc(i);
  41.    lst.add(doc.get("productId"));
  42.   }
  43. return lst; 
  44. }
  45. public static int getHitsLength(){
  46. return hitslength;
  47. }
  48. }