我有一个简单的lucene索引,其中包含一些演示文档:
Title, Keywords, H1Tag
现在,我要删除索引中的一个文档, 但是从我读过的内容来看,我不能依赖于docId,因为可能会更改?
那我该如何更新/删除文件?
我发现删除/更新的唯一样本是基于条款的,比如标题等于我要删除的内容,但如果我有20个标题相同怎么办?
答案 0 :(得分:0)
您也可以将Query
传递给DeleteDocuments。
所以,
new QueryParser(...).Parse("+Title:... +H1Tag:.... +Keywords:...");
也可用于删除文档。
另一种选择是形成自己的boolen查询
BooleanQuery bq = new BooleanQuery(); bq.Add(....);
并将该查询传递给DeleteDocuments。但除非您存储Key
之类的字段并为每个文档创建自己的唯一键(例如散列),否则您可以执行这些操作。