`
duantonghai
  • 浏览: 20340 次
  • 性别: 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  限制搜索数量,如果数据量大的话这个很有用
















分享到:
评论

相关推荐

    Luncene2.0+Heritrix开发自己的搜索引擎01(源码)

    在构建一个自定义搜索引擎的过程中,Luncene 2.0 和 Heritrix 是两个关键的组件。Luncene 是一个流行的全文检索库,而 Heritrix 是一款强大的网络抓取工具,它们共同为搜索引擎的搭建提供了坚实的基础。下面将详细...

    luncene jar包Java专用

    标题中的“luncene jar包Java专用”指的是专门为Java环境设计的Lucene库,以.jar文件形式提供,便于开发者集成到他们的项目中。这个库包含了所有必要的类和方法,使得开发人员能够构建自己的搜索引擎应用,对文本...

    luncene in action中文版

    luncene in action中文版 doc格式

    Luncene API

    Luncene的API,详细接受了Luncene的使用方法

    Luncene2.0+Heritrix开发自己的搜索引擎

    在构建一个自定义搜索引擎的过程中,Luncene 2.0 和 Heritrix 是两个关键的开源工具。Luncene 是一款强大的全文搜索引擎库,而 Heritrix 是一个网络抓取工具,它们共同为创建一个完整的搜索解决方案提供了基础。 **...

    全文搜索luncene.Net

    **全文搜索Lucene.Net** Lucene.Net是一款开源的全文搜索引擎库,它为.NET开发者提供了强大的文本检索功能。作为Apache Lucene项目的.NET版本,它在.NET Framework上实现了原生Lucene的功能,使得.NET开发者也能...

    luncene索引PDF、Html、word.txt

    #### 概述 Lucene是一款高性能、全功能的文本搜索引擎库,被广泛应用于多种场景下的全文检索应用开发中。... #### Lucene基础概念 在深入了解如何处理特定类型的文档之前,我们需要先了解几个基本概念: ...

    luncene in action 003

    标题与描述均为“luncene in action 003”,但是需要注意的是正确的拼写应为“Lucene in Action”,这是一本介绍Apache Lucene的书籍。由于提供的部分内容仅包含了一些重复的试读版本声明及网址,并未提供具体的章节...

    java+lucene)1236.rar_Lucene 搜索_Luncene_lucene_lucene web

    【标题】"java+lucene)1236.rar_Lucene 搜索_Luncene_lucene_lucene web" 提供的信息表明这是一个使用Java和Lucene框架实现的搜索系统,特别是针对公交数据的搜索。Lucene是Apache软件基金会的一个开源全文检索库,...

    ASP.NET with Luncene.net

    ASP.NET与Lucene.NET是两个在开发领域中广泛使用的开源技术。ASP.NET是Microsoft推出的用于构建Web应用程序的框架,而Lucene.NET则是一个强大的全文搜索引擎库,被许多开发者用来为他们的应用添加高效的搜索功能。...

    基于Java的Luncene的compass框架说明使用技术文档.pdf

    ### 基于Java的Luncene的Compass框架说明使用技术文档 #### 一、原理描述 Compass是一款优秀的开源Java搜索引擎框架,它能够帮助应用程序实现更为强大的搜索引擎语义能力。Compass依赖于顶级的Lucene搜索引擎,并...

    luncene api

    Apache Lucene是一个开源全文搜索引擎库,它为开发者提供了在各种应用程序中实现高级搜索功能所需的工具。Lucene API(Application Programming Interface)是这个库的核心部分,允许程序员与Lucene进行交互,构建...

    luncene.jar

    在给定的压缩包文件“luncene.jar”中,包含了三个重要的Lucene组件:lucene-core-3.0.3.jar、lucene-highlighter-3.0.1.jar和lucene-memory-3.0.1.jar,这些组件是构建高效搜索引擎的基础。 首先,我们来看一下`...

    luncene案例源码

    总的来说,这个“luncene案例源码”为我们提供了一个实战平台,让我们能够亲手实现一个小型的搜索引擎,理解Lucene在实际项目中的运用。通过研究和分析源码,不仅可以掌握Lucene的基本操作,还能进一步提升在信息...

    luncene.rar

    网上MMAnalyzer资源太少了,大多数初学者都会少导入JAR包,并且网上只有 je-analysis-MMAnalyzer的例子,而没有依赖包lucene-core-2.4.1.jar je-analysis-1.5.3.jar以及 luncene-heghlighter-2.4.1.jar

    luncene in action002

    根据提供的标题、描述、标签以及部分内容来看,似乎存在一定的误解,因为这些信息并没有提供关于“Lucene in Action002”具体内容的有效信息。“Lucene in Action”通常是一本书的名称,该书深入介绍了Apache Lucene...

    Mysoo站内搜索结合luncene

    【正文】 站内搜索是网站提供给用户查找所需信息的关键功能,它极大地提升了用户体验和信息检索效率。在本文中,我们将深入探讨如何结合开源全文搜索引擎Lucene实现一个高效的站内搜索系统,尤其针对Java开发环境。...

    luncene 4.6 自定义查询评分规则

    在本篇文章中,我们将深入探讨如何在Lucene 4.6中实现自定义查询评分规则。此技术允许用户根据特定需求调整文档的相关性评分,从而更精确地满足搜索需求。 ### Lucene 4.6 自定义查询评分规则 ...

Global site tag (gtag.js) - Google Analytics