Lucene.Net 删除索引DeleteDocuments的注意事项

时间:2022-04-23
本文章向大家介绍Lucene.Net 删除索引DeleteDocuments的注意事项,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Lucene.Net 在删除索引时,经常会出现代码成功执行,但索引并未正直删除的现象,总结一下,要注意以下因素:

1.在创建Term时,注意Term的key一定要是以"词"为单位,否则删除不成功,例如:添加索引时,如果把"d:docid.txt"当作要索引的字符串索引过了,那么在删除时,如果直接把"d:docid.txt"作为查询的key来创建Term是无效的,应该用Id.txt(但这样会把所有文件名为Id.txt的都删除,所以官方建议最好用一个能唯一标识的关键字来删除,比如产品编号,新闻编号等)

2.要删除的“词”,在创建索引时,一定要是Tokened过的,否则也不成功

3.IndexReader,IndexModifer,IndexWriter都提供了DeleteDocuements方法,但建议用IndexModifer来操作,原因是IndexModifer内部做了很多线程安全处理

4.删除完成后,一定要调用相应的Close方法,否则并未真正从索引中删除