删除或更新lucene索引中的文档

时间:2011-10-22 15:17:59

标签: lucene

我有一个简单的lucene索引,其中包含一些演示文档:

Title, Keywords, H1Tag

现在,我要删除索引中的一个文档, 但是从我读过的内容来看,我不能依赖于docId,因为可能会更改?

那我该如何更新/删除文件?

我发现删除/更新的唯一样本是基于条款的,比如标题等于我要删除的内容,但如果我有20个标题相同怎么办?

1 个答案:

答案 0 :(得分:0)

您也可以将Query传递给DeleteDocuments。

所以,

new QueryParser(...).Parse("+Title:... +H1Tag:.... +Keywords:...");

也可用于删除文档。

另一种选择是形成自己的boolen查询

BooleanQuery bq = new BooleanQuery(); bq.Add(....);

并将该查询传递给DeleteDocuments。但除非您存储Key之类的字段并为每个文档创建自己的唯一键(例如散列),否则您可以执行这些操作。