我写了一个代码来合并lucene索引。这是代码:
Analyzer analyzer = new ArabicTweetAnalyzer(true,true,true,true);
IndexWriterConfig indexWriterConfig = new IndexWriterConfig(analyzer);
indexWriterConfig.setOpenMode(OpenMode.CREATE_OR_APPEND);
Directory fullIndexDirectory = FSDirectory.open(Paths.get(args[0]));
IndexWriter iWriter = new IndexWriter(fullIndexDirectory, indexWriterConfig);
File indexesDir = new File(args[1]);
File[] indexesFiles = indexesDir.listFiles();
Directory[] indexes = new Directory[indexesFiles.length];
for (int i = 0; i < indexesFiles.length; i++) {
indexes[i] = FSDirectory.open(Paths.get(indexesFiles[i].getAbsolutePath()));
}
System.out.println("Merging...");
iWriter.addIndexes(indexes);
我在课程路径中添加了以下jar:
当我运行程序时,我得到了这个例外:
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.lucene.index.SegmentInfo.<init>(Lorg/apache/lucene/store/Directory;Lorg/apache/lucene/util/Version;Ljava/lang/String;IZLorg/apache/lucene/codecs/Codec;Ljava/util/Map;[BLjava/util/Map;Lorg/apache/lucene/search/Sort;)V
at org.apache.lucene.codecs.lucene62.Lucene62SegmentInfoFormat.read(Lucene62SegmentInfoFormat.java:198)
at org.apache.lucene.index.SegmentInfos.readCommit(SegmentInfos.java:362)
at org.apache.lucene.index.SegmentInfos$1.doBody(SegmentInfos.java:493)
at org.apache.lucene.index.SegmentInfos$1.doBody(SegmentInfos.java:490)
at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:731)
at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:683)
at org.apache.lucene.index.SegmentInfos.readLatestCommit(SegmentInfos.java:490)
at org.apache.lucene.index.IndexWriter.addIndexes(IndexWriter.java:2487)
at _general.LuceneIndexesMerger.main(LuceneIndexesMerger.java:36)
Suppressed: org.apache.lucene.index.CorruptIndexException: checksum passed (4283f417). possibly transient resource issue, or a Lucene or JVM bug (resource=BufferedChecksumIndexInput(MMapIndexInput(path="D:\indexes\1\_0.si")))
at org.apache.lucene.codecs.CodecUtil.checkFooter(CodecUtil.java:379)
at org.apache.lucene.codecs.lucene62.Lucene62SegmentInfoFormat.read(Lucene62SegmentInfoFormat.java:203)
... 8 more
我不知道为什么我得到这个异常以及缺少哪些jar文件! 任何提示?