【问题标题】:Lucene.net DeleteDocuments deleting too much?Lucene.net DeleteDocuments 删除太多?
【发布时间】:2012-05-30 22:14:40
【问题描述】:

例如,我在索引中有两个文档...它们都有“Id”字段。

现在,我在 IndexWritter 上发出 DeleteDocuemnts 并为其提供第一项的 Id。

所以创建索引:

var document = new global::Lucene.Net.Documents.Document();
    document.Add(new Field("Content", "content", Field.Store.YES, Field.Index.ANALYZED, Field.TermVector.WITH_POSITIONS_OFFSETS));
    document.Add(new Field("Id", "vladanstrigo", Field.Store.YES, Field.Index.NOT_ANALYZED));

var document2 = new global::Lucene.Net.Documents.Document();
    document2.Add(new Field("Content", "content second", Field.Store.YES, Field.Index.ANALYZED, Field.TermVector.WITH_POSITIONS_OFFSETS));
    document2.Add(new Field("Id", "ivanstrigo", Field.Store.YES, Field.Index.NOT_ANALYZED));


var directory = FSDirectory.Open("...directory...");
var analyzer = ...GetAnalyzer();

var indexWriter = ...GetWriter();

indexWriter.AddDocument(document);
indexWriter.AddDocument(document2);

这很好用...我在索引中有两个文档,它们运行良好。

但是当我这样做时:

indexWriter.DeleteDocuments(new Term("Id", "ivanstrigo"));

IndexWriter 删除了索引中的所有文档...不仅是与该术语匹配的文档...我不知道如何停止。我只想删除这个!

我做错了什么?

【问题讨论】:

    标签: lucene.net lucene full-text-indexing


    【解决方案1】:

    找到答案...在创建 IndexWriter 时,我在创建新索引时已经“正确”...基本上总是重新创建一个新索引。

    现在可以了。

    【讨论】:

      猜你喜欢
      • 2020-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-06
      • 1970-01-01
      • 2011-08-24
      相关资源
      最近更新 更多