`

Luence建索中的一个异常

 
阅读更多

异常:org.apache.lucene.index.CorruptIndexException: failed to locate current segments_N file
 at org.apache.lucene.index.IndexFileDeleter.<init>(IndexFileDeleter.java:223)
 at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:670)
 at org.apache.lucene.demo.IKAnalyzerDemo.createIndex(IKAnalyzerDemo.java:45)
 at org.apache.lucene.demo.IKAnalyzerDemo.main(IKAnalyzerDemo.java:185)

  未能找到当前segments_N文件

 

 

建索类:

String fieldName = "title";
    String fieldValue="content";
    Analyzer analyzer = new IKAnalyzer();
    /**
     * 创建索引
     * @param pathFile  索引存放位置
     */
 @SuppressWarnings("deprecation")
 public void createIndex(String pathFile){
    String text1 = "上海(Shanghai),简称“沪”或“申”,中国第一大城市,中华人民共和国直";
         String text2 = "天津,简称津,中华人民共和国直辖市、中国国家中心城市、中国北方经济中心、.";
         String text3 = "北京是中华人民共和国的首都、直辖市和国家中心城市之一,";
         try {
          //文件生成在classpath下
             //RAMDirectory directory = new RAMDirectory();
             Directory directory = FSDirectory.open(new File(pathFile));
             //索引存放文件夹  通过测试该文件夹可以持续放入索引 每建索一次 就会生成对应的文件
           //Directory directory=FSDirectory.open(new File(pathFile)); 
              IndexWriterConfig writerConfig = new IndexWriterConfig(Version.LUCENE_34, analyzer);
              IndexWriter indexWriter = new IndexWriter(directory, writerConfig);
              /**
               * Field.Store.YES 表示是否存储    Field.Index.ANALYZED 表示对该对象是否建索
               * 一般存储需要展示的内容,对有用的如:标题、内容进行建索,链接或者序号不用建索。
               */
              Document document1 = new Document();
              document1.add(new Field(fieldName, "中国上海", Field.Store.YES, Field.Index.ANALYZED));
              document1.add(new Field(fieldValue, text1, Field.Store.YES, Field.Index.ANALYZED));
              indexWriter.addDocument(document1);
             
              Document document2 = new Document();
              document2.add(new Field(fieldName, "中国天津", Field.Store.YES, Field.Index.ANALYZED));
              document2.add(new Field(fieldValue, text2, Field.Store.YES, Field.Index.ANALYZED));
              indexWriter.addDocument(document2);
             
              Document document3 = new Document();
              document3.add(new Field(fieldName, "北京", Field.Store.YES, Field.Index.ANALYZED));
              document3.add(new Field(fieldValue, text3, Field.Store.YES, Field.Index.ANALYZED));
              indexWriter.addDocument(document3);
              //此时删除的文档并未完全删除,而是存储在回收站中,可以恢复的 
              //indexWriter.forceMergeDeletes();
              //indexWriter.ramSizeInBytes();
              indexWriter.close();
   } catch (Exception e) {
    e.printStackTrace();
   }
 }

 

解决方法:修改pathFile文件夹路径  。

     谷歌了一下,好像是上次建索失败导致。具体原因不知道,希望知道原因的大手给解释一下!虾米不胜感激!

分享到:
评论

相关推荐

    Luence.net搜索小程序

    首先,Luence.net是Apache Lucene项目的一个.NET版本,Lucene作为业界知名的全文搜索引擎库,以其开源、高性能而广受好评。Luence.net则继承了Lucene的优点,并针对.NET环境进行了优化,提供了易于使用的.NET API,...

    Luence搜索Demo

    3. **文档对象模型(Document)**:在Luence中,每个要索引的实体都表示为一个Document对象,可以包含多个Field,每个Field代表不同的属性。在Demo中,我们会看到如何创建和填充Document对象,以及如何将它们添加到...

    luence搜索

    Lucene,作为一个开源的全文搜索引擎库,被广泛应用于各种信息检索系统中。它提供了一套高效、灵活的文本搜索解决方案,使得开发者能够快速地在大量数据中实现高效的全文检索功能。本文将深入探讨Lucene的工作原理、...

    luence客户端测试软件luke

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

    Luence和ElasticSearch面试准备.docx

    Lucene是一个高性能、全文本搜索库,而Elasticsearch则是在Lucene的基础上构建的一个分布式、RESTful风格的搜索和数据分析引擎。两者在面试中常常被提及,以下是对这两个技术的关键知识点的深入解析。 首先,Lucene...

    lucene索引与搜索(含jar包)

    在 Lucene 中,索引是一个预处理步骤,通过这个过程,原始文本数据被转换成一种可以快速查询的数据结构。这个过程包括分词(Tokenization)、词干提取(Stemming)、停用词过滤(Stop Word Filtering)等文本处理...

    Lucene 搜索方法(模糊搜索)

    在IT领域,搜索引擎技术是不可或缺的一部分,而Apache Lucene是一个高性能、全文本搜索库,它为开发者提供了构建自定义搜索引擎应用程序所需的所有工具。本篇我们将深入探讨如何在Lucene中实现模糊搜索,以及相关的...

    Luence in Action 中英文pdf 版

    读者将学习如何创建一个简单的Lucene应用,理解其核心组件如Analyzer、Document、Field和IndexWriter。 2. **文本处理**:Analyzer是Lucene处理文本的关键部分,它负责将输入的文本拆分成可搜索的术语。书中会详细...

    获取全部Luence数据

    首先,我们需要创建一个 `MultiFieldQueryParser` 来解析查询字符串,并构建一个空的查询条件,以便检索所有文档: ```csharp Analyzer analyzer = new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_29); // ...

    IKAnalyzer和luence压缩包大全

    IKAnalyzer是一个专门针对中文的分词工具,而Lucene则是一个全文检索框架。这里我们深入探讨这两个组件以及它们的关联。 **IKAnalyzer** 是一个高性能的Java实现的中文分词器,特别适合于搜索引擎或者文本分析场景...

    luence索引例子

    标题 "luence索引例子" 暗示我们要探讨的是Lucene,一个广泛使用的全文搜索引擎库,它在处理大量文本数据时提供了高效的检索能力。在这个例子中,我们将深入理解如何利用Lucene创建索引来优化数据库记录的搜索性能。...

    Luence原理及源码分析

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

    luence4.6例子

    - 倒排索引:Term类表示一个词项,Term Frequency-Inverted Index (TF-IDF)是Lucene的核心数据结构,用于存储每个词项在哪些文档中出现以及出现次数。 2. **查询处理**: - 查询解析:QueryParser将用户输入的...

    Luence简单实例

    Lucene是Apache软件基金会的一个开放源代码项目,它是一个高性能、全文本检索库,提供了Java实现的全文检索引擎。Lucene的主要功能包括文档的索引和搜索,支持多种数据源,如文本文件、数据库等。在Java应用中集成...

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

    标题中的“Lucene”是一个全文搜索引擎库,常用于构建高效的搜索功能。它是开源的,用Java编写,但在.NET环境中可以通过Lucene.NET实现跨平台。在本案例中,它被用于处理用户输入的句子,可能涉及到索引、搜索和分析...

    基于Lucene的搜索系统-客户端调用

    在搜索过程中,客户端首先会创建一个`IndexSearcher`实例,然后利用`QueryParser`或`MultiFieldQueryParser`构建查询。查询对象创建完成后,通过`IndexSearcher`执行查询,得到`TopDocs`对象,包含了匹配文档的分数...

    前后端分离的使用spring Mvc、 mybatis、 luence、 spring 开发的开源知识库系统的所有后端端源码

    它提供了一个模型-视图-控制器(MVC)架构,使开发者能够清晰地分离业务逻辑、数据处理和用户界面。在本项目中,Spring MVC作为后端的核心组件,负责接收前端请求,处理业务逻辑,与数据库交互,并返回响应数据。它...

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

    该步骤中,`IndexSearcher`遍历子读取器(`subReaders`),为每个读取器设置下一个文档的起始位置,并根据`collector`是否接受文档顺序错乱来调用权重对象的`scorer`方法,获取评分器(`Scorer`)。评分器用于实际计算每...

    Luence+Ikanalyzer+stopword+dic

    在Lucene中,可以通过定义一个停用词表来实现这个功能。stopword+dic表示我们可以自定义一份停用词字典,比如在压缩包中的luncene文件可能就包含了这样的自定义停用词表。 自定义停用词表的使用步骤通常是: 1. ...

    基于lucene3.6平台搜索工具相关包及使用说明

    每个Document对应实际数据中的一个记录。 3. 构建查询:使用QueryParser将用户输入的查询字符串转换为Query对象。 4. 执行查询:使用Searcher的search方法,传入Query对象,获取TopDocs对象,其中包含了匹配的文档...

Global site tag (gtag.js) - Google Analytics