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

luence学习的指南文档(三)

阅读更多

3.  使用场合:多个搜索引擎查询的数据结果的合并信息操作:添加索引:删除索引 恢复索引

备注:使用IndexReader对象删除文件对象时,它的并非实质上删除,仅仅时设置一个删除的标识,直到IndexReader调用close方法之后才真正删除它们。删除可以根据特定项和索引删除,在删除之后最好使用IndexWriter其进行优化设置.(注意Luence中并没有专门update的方法设置修改索引必须先删除后添加新的索引的方式开发)

      /**

       * 删除索引对象

       * @throws IOException

       */

      public void deleteIndex(Directory dir)throws IOException

      {

         //打开文件的删除使用IndexReader

         IndexReader reader=IndexReader.open(dir);

         //reader.maxDoc() 下一个Document对象的编号为2

          //reader.numDocs() 索引中有文档数目

         System.out.println("before delete max doc="+reader.maxDoc()+" numDocs "+reader.numDocs());

         //删除编号为1的文档对象

         reader.delete(1);

           //reader.isDeleted(1) 检测是否删除

          //关闭索引读取对象

         reader.close();

         //对删除后的信息进行重新编号的文档进行优化

         IndexWriter writer=new IndexWriter(dir,new WhitespaceAnalyzer(),false);

         //采用优化方案

         writer.optimize();

         writer.close();

         reader=IndexReader.open(dir);

         System.out.println("after delete max doc="+reader.maxDoc()+" numDocs "+reader.numDocs());

          reader.close();

  }

    /**

     * 修改索引方法

     * @throws IOException

     */

  public void updateIndex()throws IOException

  {

         //测试删除前的文档的数量

         assertEquals(1, this.getHitCount("city", "Amsterdam"));

        

         IndexReader reader=IndexReader.open(dir);

         //删除索引的信息

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

          // 在文档被设置删除标识,但没有执行最后删除之前,恢复被标记为删除的文档。reader.undeleteAll();

         reader.close();

         //测试删除后文档数量

         assertEquals(0, this.getHitCount("city", "Amsterdam"));

         IndexWriter writer=new IndexWriter(dir,this.getAnalyzer(), false);

          Document doc=new Document();

          doc.add(Field.Keyword("id", "1"));

        

          doc.add(Field.UnIndexed("country", "Netherland"));

          doc.add(Field.UnStored("contents","Amsterdam has lots of bridges"));

          doc.add(Field.Text("city","Haag"));

          writer.addDocument(doc);

          writer.optimize();

          writer.close();

          assertEquals(1, this.getHitCount("city", "Haag"));

  }

  /**

   * 字词分析器的

   */

  public Analyzer getAnalyzer()

  {

      return new WhitespaceAnalyzer();

  }

 

分享到:
评论

相关推荐

    luence客户端测试软件luke

    "luence客户端测试软件luke" 指的是一个名为"Luke"的工具,它是针对Apache Lucene(一个流行的全文搜索引擎库)的客户端测试和分析工具。Luence可能是“Lucene”的拼写错误,但在这里我们假设指的是Lucene。 **描述...

    Lucene 2.9 API CHM 官方API学习资料电子书

    lucene 2.9 API , lucene API,lucene 学习资料,lucene2.9 CHM

    lucene学习lucene学习

    1. 准备待索引的文档:确保你的文档是可以被 Lucene 处理的文本格式,例如 .txt 文件。如果文档是非文本格式,如 HTML 或 PDF,你需要先将其转换为纯文本。 2. 创建索引:清单 1 展示了一个简单的 Java 示例,演示...

    Luence.net搜索小程序

    通过"Luence.net搜索小程序",我们可以学习到如何实现实时搜索、高亮显示、盘古分词以及智能匹配等一系列高级搜索功能。 首先,Luence.net是Apache Lucene项目的一个.NET版本,Lucene作为业界知名的全文搜索引擎库...

    Luence和ElasticSearch面试准备.docx

    《Luence和ElasticSearch面试准备》 Lucene和ElasticSearch是两个在全文搜索引擎领域中广泛使用的开源工具。Lucene是一个高性能、全文本搜索库,而Elasticsearch则是在Lucene的基础上构建的一个分布式、RESTful风格...

    获取全部Luence数据

    ### 获取全部Luence数据 #### 知识点详解 **Lucene** 是一个高性能、全功能的文本搜索引擎库。在本文档中,我们将探讨如何通过Lucene获取索引中的所有文档,包括创建索引、查询索引以及遍历所有文档的具体步骤。 ...

    Luence搜索Demo

    总结来说,Luence.Net搜索Demo是一个极好的学习资源,它展示了如何利用Luence进行全文搜索,涵盖了从索引构建、查询解析到结果展示的全过程。通过深入研究和实践,开发者可以提升在.NET环境中构建高效搜索引擎的能力...

    Luence原理及源码分析

    lucene 原理与分析,底层源码解析,应用场景及实践,相关配置

    luence4.6例子

    5. **luence46**: 这个压缩包可能包含了Lucene 4.6版本的源代码,源码提供了深入了解其内部工作原理的机会。你可以通过阅读和分析源代码,学习如何实现自己的搜索功能,或者优化现有系统的搜索性能。 通过对...

    Luence简单实例

    **Lucene简介** Lucene是Apache软件基金会的一个开放源代码项目,它是一个高性能、全文本检索库,提供了Java实现的...这种实例有助于开发者快速理解和掌握Lucene的基本用法,为进一步深入学习和应用Lucene打下基础。

    IKAnalyzer和luence压缩包大全

    **"IKAnalyzer中文分词器V2012_FF使用手册.pdf"** 提供了详细的使用指南,对于初学者来说是非常宝贵的资源。它会解释如何安装IKAnalyzer,如何配置和使用,以及如何解决可能出现的问题。通过阅读这份手册,开发者...

    luence搜索

    三、Lucene高级特性 1. 分词器(Analyzer):分词器负责将输入的文本分割成词,不同的语言和应用场景可能需要定制不同的分词规则。 2. 查询解析(Query Parser):Lucene提供了多种查询解析器,可以解析用户输入的...

    lucene基础学习笔记&源码

    **三、Lucene 源码解读** 源码分析对于深入理解 Lucene 内部工作原理至关重要。`lucene-3.5.0-src.tgz` 包含了 Lucene 3.5.0 版本的源代码,可以进行以下研究: 1. **分析索引流程**:查看 `org.apache.lucene....

    luence索引例子

    描述中提到“使用luence索引数据库中的记录”,意味着我们将学习如何将数据库中的数据转化为Lucene可处理的格式,并创建索引。这个过程通常包括以下步骤: 1. **初始化Lucene**: 创建一个`Directory`对象,这是...

    Luence in Action 中英文pdf 版

    《Lucene in Action》是一本深入探讨Apache Lucene的权威指南,这本书的中英文PDF版本提供了全面了解和学习这个搜索引擎库的机会。Lucene是Java开发的一款高性能、全文本搜索库,广泛应用于各种需要强大搜索功能的...

    lucene-5.5.3对应的源码文件

    三、查询执行流程 1. 构建查询解析器(QueryParser):将用户的查询语句转换为Lucene的Query对象。 2. 查询分析:QueryParser同样会使用Analyzer处理查询语句,确保与索引中的处理一致。 3. 执行查询:Searcher类...

    lucene-core-7.3.1-API文档-中文版.zip

    包含翻译后的API文档:lucene-core-7.3.1-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.apache.lucene:lucene-core:7.3.1; 标签:apache、lucene、core、中文文档、jar包、java; 使用方法:解压翻译后的API...

    lucene-搜索过程源码解析-Score树

    ### 三、`search(weight, filter, collector)` 该步骤中,`IndexSearcher`遍历子读取器(`subReaders`),为每个读取器设置下一个文档的起始位置,并根据`collector`是否接受文档顺序错乱来调用权重对象的`scorer`...

    Luence的与盘古分词的使用软件

    总之,“Luence的与盘古分词的使用软件”是将Lucene.NET和盘古分词相结合,利用C# .NET技术在VS2013环境下构建的一款文本处理应用。它实现了对用户输入句子的分词,以及基于分词结果的索引查询,从而在大量文本数据...

    Lucene5学习之FunctionQuery功能查询

    **标题解析:** "Lucene5学习之FunctionQuery功能查询" Lucene5是Apache Lucene的一个版本,这是一个高性能、全文本搜索库,广泛应用于搜索引擎和其他需要高效文本检索的系统。FunctionQuery是Lucene中的一种查询...

Global site tag (gtag.js) - Google Analytics