- 目的:我想把内存中的索引合并到磁盘文件中。
- 异常:org.apache.lucene.index.IndexNotFoundException: no segments* file found in org.apache.lucene.store.RAMDirectory@1e94b0ca lockFactory=org.apache.lucene.store.SingleInstanceLockFactory@33e2ad75: files: [_0.fdx, _0.fdt]
at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:741)
at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:630)
at org.apache.lucene.index.SegmentInfos.read(SegmentInfos.java:343)
at org.apache.lucene.index.IndexWriter.addIndexes(IndexWriter.java:2333)
at org.apache.lucene.demo.IKAnalyzerT.createIndex(IKAnalyzerT.java:45)
at org.apache.lucene.demo.IKAnalyzerT.main(IKAnalyzerT.java:58)
意思是:我在把内存索引合并到磁盘的时候 内存中没有索引文件。
我的解决方案参考: 在索引库没有建立并且没有索引文件的时候首先要commit一下让他建立一个
- public class X {
- public static void main(String[] args) throws Exception{
- Analyzer a = new StandardAnalyzer(Version.LUCENE_CURRENT);
- IndexDeletionPolicy commitDeletionPolicy = new SolrDeletionPolicy();
- FSDirectory directory = FSDirectory.open(new File("c:\\"));
- IndexWriterConfig config = new
- IndexWriterConfig(Version.LUCENE_CURRENT,a);
- config.setOpenMode(OpenMode.CREATE_OR_APPEND);
- config.setIndexDeletionPolicy(commitDeletionPolicy);
- IndexWriter writer = new IndexWriter(directory, config);
- // -----------------
- // 在索引库没有建立并且没有索引文件的时候首先要commit一下让他建立一个
- // 索引库的版本信息
- //writer.commit();
- // -----------------
- //如果第一次没有commit就打开一个索引读取器的话就会报异常
- IndexReader reader = IndexReader.open(directory);
- System.out.println(reader);
- //Exception in thread "main" org.apache.lucene.index.IndexNotFoundException: no segments* file found in org.apache.lucene.store.SimpleFSDirectory@C:\ lockFactory=org.apache.lucene.store.NativeFSLockFactory@15a8767: files: [bootmgr, BOOTSECT.BAK, pagefile.sys, write.lock]
- // at
- // org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:711)
- // at
- // org.apache.lucene.index.DirectoryReader.open(DirectoryReader.java:75)
- // at org.apache.lucene.index.IndexReader.open(IndexReader.java:428)
- // at org.apache.lucene.index.IndexReader.open(IndexReader.java:274)
- // at com.zyb.solrQuery.X.main(X.java:39)
- }
- }
相关推荐
Maven坐标:org.apache.lucene:lucene-core:7.7.0; 标签:apache、lucene、core、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档...
org.apache.lucene.analysis.cjk.CJKAnalyzer .......
Exception in thread "main" java.lang.AbstractMethodError: org.apache.lucene.analysis.TokenStream.incrementToken()Z 换用svn里源码版正常 http://paoding.googlecode.com/svn/trunk/paoding-analysis/
Apache Lucene是一个高性能、全文本搜索库,由Java编写,被广泛用于开发搜索引擎和需要文本检索功能的应用程序。Apache Lucene 4.7是该库的一个版本,它提供了丰富的功能和改进,使得开发者能够轻松地在他们的应用中...
Exception in thread "main" java.lang.AbstractMethodError: org.apache.lucene.analysis.TokenStream.incrementToken()Z at org.apache.lucene.index.DocInverterPerField.processFields(DocInverterPerField....
6. **异常处理和日志记录**:分析错误处理机制,以及如何利用 `org.apache.lucene.util` 中的工具类进行日志记录。 通过阅读源码,我们可以深入了解 Lucene 的内部机制,这对于定制和优化 Lucene 应用,以及解决...
- **Analyzer API**: 如`org.apache.lucene.analysis.Analyzer`,提供了创建自定义分析器的方法,如`createComponents(String fieldName, Reader reader)`,用于创建TokenStream。 - **IndexWriter API**: 如`org....
- `org.apache.lucene.store.Directory`接口定义了存储索引的基本行为,其实现类包括基于文件系统的`FSDirectory`和基于内存的`RAMDirectory`。 - `org.apache.lucene.store.IndexInput`和`org.apache.lucene....
- **org.apache.lucene.document**:定义了Document对象,作为存储结构,文档由多个Field组成,每个Field对应不同类型的文献数据。 - **org.apache.lucene.field**:表示文档中的各个字段,定义了字段的类型和属性。...
5. **org.apache.lucene.store**: 这个包包含了存储索引的接口和实现,如内存存储`RAMDirectory`和文件系统存储`FSDirectory`。 6. **org.apache.lucene.queryparser**: 提供了查询解析器,将用户输入的字符串转换...
Hadoop是一个开源的分布式计算框架,源于Apache Lucene项目,主要负责大规模数据的分布式存储和处理。它由几个核心组件构成,包括Hadoop Distributed File System (HDFS)和MapReduce计算模型。 **HDFS**是Hadoop的...
Maven坐标:org.apache.lucene:lucene-spatial:6.6.0; 标签:apache、lucene、spatial、jar包、java、API文档、中英对照版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 ...
7. **`org.apache.lucene.store`**:处理索引数据的存储与检索,封装了底层的I/O操作,确保数据的安全与高效访问。 8. **`org.apache.lucene.util`**:提供一系列工具类和常量,辅助Lucene的其他组件完成特定任务。...
import org.apache.lucene.store.FSDirectory; import java.nio.file.Paths; public class IndexingExample { public static void main(String[] args) throws Exception { Directory directory = FSDirectory....
import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.queryParser.QueryParser; import org.apache.lucene.search.Hits; import ...
Exception in thread "main" java.io.FileNotFoundException: no segments* file found in org.apache.lucene.store.FSDirectory@E:\index: files: at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run...
- **`org.apache.lucene.store.FSDirectory`**:使用本地文件系统作为存储后端。 - **`org.apache.lucene.store.RAMDirectory`**:将索引存储在内存中,适用于测试环境或小型应用。 - **`org.apache.lucene.store....
Lucene是一个高度可扩展的、高性能的全文检索库,由Apache软件基金会开发并维护。它是Java开发者在构建搜索引擎应用时的首选工具,因为它提供了完整的索引和搜索功能,同时也支持复杂的查询语法。Lucene的主要目标是...