Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2653454
  • 博文数量: 416
  • 博客积分: 10220
  • 博客等级: 上将
  • 技术积分: 4193
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-15 09:47
文章分类

全部博文(416)

文章存档

2022年(1)

2021年(1)

2020年(1)

2019年(5)

2018年(7)

2017年(6)

2016年(7)

2015年(11)

2014年(1)

2012年(5)

2011年(7)

2010年(35)

2009年(64)

2008年(48)

2007年(177)

2006年(40)

我的朋友

分类: Java

2006-12-15 10:42:01

代码 如下:
 
 
Searcher searcher = new IndexSearcher(indexDir);
//   Query query = MultiFieldQueryParser.parse(keyVal, fields, analyzer);
   QueryParser q=new QueryParser("title",new StandardAnalyzer());
   Query query = q.parse("中国");
   StandardAnalyzer  analyzer=new StandardAnalyzer();   
   
   Hits hits = searcher.search(query);
   Highlighter highlighter = new Highlighter(new QueryScorer(query)); 
   
   
   //整数型的ID检索结果排序只要进行以下的简单操作:
//    Sort sort = new Sort("id");
//   Hits hits = searcher.search(query, sort);
  
   System.out.println("len="+hits.length());
   if(hits != null){
       for(int i = 0;i < hits.length(); i++){
           Document doc = hits.doc(i);
           System.out.println("found in " + doc.get("title"));
           System.out.println("summary = " + doc.get("summary"));
           System.out.println(doc.get("url"));
          
         
     TokenStream tokenStream = analyzer.tokenStream("title", new StringReader( doc.get("title")));
     // Get 3 best fragments and seperate with a "..."
     String result = highlighter.getBestFragments(tokenStream, doc.get("title"), 3, "...");
    // System.out.println(result);
       }
   }
   searcher.close();
 
 
注意: 该方法是是 利用  lunece 1.9api  其他版本 写法不同,请参考 api
在 创建索引时,需要记录索引位置
 
IndexWriter indexWriter = new IndexWriter(indexDir, new StandardAnalyzer(), true);
          indexWriter.mergeFactor  = 2; //修正lucene 1.4.2 bug,不添加则不合并原有索引
    for( int i=0;i     HashMap map=(HashMap)list.get(i);
      Document doc = new Document();
     
              doc.add(new Field("title",(String)map.get("title"), Field.Store.YES, Field.Index.TOKENIZED,Field.TermVector.WITH_POSITIONS_OFFSETS));
              // Add the summary as a field that is stored and returned with
              // hit documents for display.
              doc.add(new Field("summary","summary", Field.Store.YES, Field.Index.NO));
              // Add the title as a field that it can be searched and that is stored.
              doc.add(new Field("url", (String)map.get("url"), Field.Store.YES, Field.Index.NO));
              indexWriter.addDocument(doc);
             
//              System.out.println("加入:"+(String)map.get("content"));
    }
    indexWriter.optimize(); //合并索引并优化
   indexWriter.close();
 
阅读(2616) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~