`
duantonghai
  • 浏览: 19808 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

luncene

 
阅读更多
luncene是一个 文本搜索引擎工具库,使用简单


1, 创建索引

 
 File indexDir=new File("c:\\temp\\index");
   File dataDir=new File("c:\\temp\\data");

  IndexWrtier writer=new IndexWriter(indexDir,new StandarAnalyzer(),true);
  writer.setUseCompoundFile(false);

  Document doc=new Docment();
  doc.add(Field.Text("contents",new FileReader(f));
  doc .add(Field.Keyword("filename",f.getCanonicalPath()));
  writer.addDocument(doc);

  writer.optimize();
  writer.close();


2, 搜索
 
  
Directory fsDir=FSDirectory.getDirectory(indexDir,false);
   IndexiSearcher is = new IndexSearcher(fsDir);
   String q="google";
   Query query=QueryParser.parse(q,"contents",new StandardAnalyzer());
   Hits hits=is.search(query);

   for(int i=0;i<hits.length();i++){
       Document doc=hits.doc(i);
       System.out.println(doc.get("filename"));
   }



3, Field 类
   Keyword: 不需要分析,但是会被逐字逐句的被索引并存储。适合URL, 文件系统路径,日期,个人姓名。

  UnIndexed: 既不被分析也不索引,但会被存储在索引文件里
  UnStored: 与UnIndexed相反,会分析索引,但不会存储,适合大数据文件,如网页正文

  Text:需要分析索引,string 存储,Reader不存储



  4, 优化

      1, 可追加域
         
       
 String baseWord="fast";
         String synonyms[]=String{"quick","rapid","speedy"};
         Document doc=new Document();
         doc.add(Field.Tex("word", baseWord);
         for(int i=0;i<synonyms.length;i++){
              doc.add(Filed.Text("word",synonyms[i]));
         }


     2, 使用内部编号删除文档
        
      
  IndexReader reader=new IndexReader.open(dir);
         reader.delete(1);
         reader.maxDoc();
         reader.numDocs();

         reader.delete(new Term("city","beijin"));


          通过批量删除更新:
          1, 打开IndexReader对象
          2, 删除所有需要删除的Document对象
          3,关闭IndexReader
          4, 打开IndexWriter
          5, 添加所需要的Document
          6, 关闭IndexWriter

       3, doc.setBosst(1.0) 可加强索引重要性比重

        4, writer.mergeFactor, maxMergeDocs, minMergeDocs 值提高性能
      
       5, 内存索引 RAMDirectory 会把索引放在内存中获得最高性能

       6. writer.maxFieldLength  限制搜索数量,如果数据量大的话这个很有用
















分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics