天天看點

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

Lucene.Net 在删除索引時,經常會出現代碼成功執行,但索引并未正直删除的現象,總結一下,要注意以下因素:

1.在建立Term時,注意Term的key一定要是以"詞"為機關,否則删除不成功,例如:添加索引時,如果把"d:\doc\id.txt"當作要索引的字元串索引過了,那麼在删除時,如果直接把"d:\doc\id.txt"作為查詢的key來建立Term是無效的,應該用Id.txt(但這樣會把所有檔案名為Id.txt的都删除,是以官方建議最好用一個能唯一辨別的關鍵字來删除,比如産品編号,新聞編号等)

2.要删除的“詞”,在建立索引時,一定要是Tokened過的,否則也不成功

3.IndexReader,IndexModifer,IndexWriter都提供了DeleteDocuements方法,但建議用IndexModifer來操作,原因是IndexModifer内部做了很多線程安全處理

4.删除完成後,一定要調用相應的Close方法,否則并未真正從索引中删除

繼續閱讀