当我尝试通过带有Occur.Should的布尔查询删除文档时,没有任何内容被删除
var query = new BooleanQuery();
query.Add(new TermQuery(new Term("Field", "A")), Occur.Should);
query.Add(new TermQuery(new Term("Field", "B")), Occur.Should);
writer.DeleteDocuments(query);
query.Clauses.Clear();
writer.Commit();
我希望“字段”值为“A”或“B”的文档将从索引中删除,但当我从索引中获取文档时,仍然得到“A”和“B”,我是否以错误的方式使用了它?
1条答案
按热度按时间o2g1uqev1#
事实证明,我不应该在提交之前调用Clauses.Clear()。这个过程将清除所有布尔子句。删除clear部分,一切都正常。