java - Lucene 3.4 覆盖索引中的文档

标签 java lucene

我正在尝试将文档添加到索引,但是当我尝试运行以下函数时,它返回 numDocs 作为 1 并覆盖上一个文档一!难道我做错了什么?我在另一个项目上做了同样的事情,效果很好!

    IndexWriter writer;
    Directory dir = FSDirectory.open(new File("/home/omid/Desktop/Indexes"));
    writer = new IndexWriter(dir, new StandardAnalyzer(Version.LUCENE_34), true, IndexWriter.MaxFieldLength.UNLIMITED);
    Document doc = new Document();
    doc.add(new NumericField("id", Field.Store.YES, false).setIntValue(writer.numDocs()));
    doc.add(new NumericField("day", Field.Store.YES, false).setIntValue(13));
    doc.add(new NumericField("month", Field.Store.YES, false).setIntValue(1));
    doc.add(new NumericField("year", Field.Store.YES, false).setIntValue(1387));
    doc.add(new Field("content", new FileReader(new File(filename)), Field.TermVector.YES));
    doc.add(new Field("address", filename,Field.Store.YES, Field.Index.NOT_ANALYZED));
    writer.addDocument(doc);
    writer.close();
    mes = "Indexed Filename: " + filename;
    mes = mes + "<BR>Number of docs: " + writer.numDocs();

3.4 中的 lucene 3.0 是否有任何更改,或者我正在这样做

最佳答案

IndexWriter constructor的第三个参数指定是否应创建索引。如果create=true(如您的示例所示),任何旧索引都会被删除并替换为新索引。如果为 false,它将附加到现有索引。

此外,这种风格的 IndexWriter 构造函数在 3.4 中已弃用,并且在 4.x 中也不存在。通过IndexWriterConfig会好得多改为进入 IndexWriter

关于java - Lucene 3.4 覆盖索引中的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18212892/

相关文章:

java - 如何禁用 Quartz JDBCJobStore 中的作业?

JavaFX - 应用程序 : Only main stage is shown from exported jar file while in Eclipse all dialogs are shown, 为什么会出现这种差异?

Java独立代码块

java - 大量小额传输的Netty App设计

java - 尝试在 Cast.writetoParcel 的空对象引用上调用虚拟方法 'int.java.lang.Integer.intValue()'

elasticsearch - 为什么同一查询中某些结果分数包含 queryWeight,而其他分数则不包含 queryWeight?

lucene - 来自 couchdb-lucene 的分页结果

hadoop - 如何显示Hdfs目录路径通过solr搜索作为输出?假设如果用户在solr中搜索,那么我想显示该目录的路径?

php - 在 Zend Lucene 中将范围查询与多项查询相结合

java.lang.NoClassDefFoundError : org/apache/lucene/codecs/simpletext/SimpleTextCodec