Vladan Strigo
Vladan Strigo

Reputation: 551

Lucene.net DeleteDocuments deleting too much?

I have for example two docs in the index...both of them have fields "Id".

Now, I issue a DeleteDocuemnts on IndexWritter giving it the Id of the first item.

So creating the index:

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);

This works great...I get two documents in index and they work perfect.

But when I do:

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

The IndexWriter deleted ALL documents in index...not only the one matching this term...which I don't know how to stop. I only want to delete this one!

What am I doing wrong?

Upvotes: 1

Views: 473

Answers (1)

Vladan Strigo
Vladan Strigo

Reputation: 551

Found an answer...when creating IndexWriter, I've had "true" on create new index...which basically always recreated a new index.

It works now.

Upvotes: 1

Related Questions