0

我有一个 java 程序,它索引和搜索一些文件的关键字。我在一个filestoindex目录中有 10 个文件,并且正在索引这些文件。当我IndexWriter第一次运行时,它显示 10 个文档已被索引,但当我下次运行时,它显示它已索引 20 个文档。为了避免每次都发生这种情况,我正在删除索引目录并运行代码。当我这样做时,它运行良好。IndexWriter当我运行我的(不删除 indexdir 目录)时,请向我建议一种每次更新索引目录的方法。

indexDirectory = new File(indexFilePath);
FSDirectory dir = FSDirectory.open(D://filestoindex);
StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_34);
IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_34, analyzer);
writer = new IndexWriter(dir, config);
4

1 回答 1

1

您需要将OpenModein设置IndexWriterConfigCREATE. 这将导致它在您打开 时启动一个新索引IndexWriter,如果存在则覆盖旧索引。

IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_34, analyzer);
config.setOpenMode(IndexWriterConfig.OpenMode.CREATE);
writer = new IndexWriter(dir, config);
于 2013-06-20T15:24:01.573 回答