lucene 索引刪除


1.IndexWriter和IndexReader都有刪除索引的方法:deleteDocuments();

  不建議使用IndexReader刪除索引:使用IndexReader進行刪除時,必須關閉所有已經打開的IndexWriter;當使用當前的IndexReader進行搜索時,即使在不關閉IndexReader的情況下,被刪除的Document也不會再出現在搜索結果中。

 

2.IndexWriter刪除

IndexWriter.DeleteDocuments(Query query)——根據Query條件來刪除單個或多個Document

IndexWriter.DeleteDocuments(Query[] queries)——根據Query條件來刪除單個或多個Document

IndexWriter.DeleteDocuments(Term term)——根據Term來刪除單個或多個Document

IndexWriter.DeleteDocuments(Term[] terms)——根據Term來刪除單個或多個Document

IndexWriter.DeleteAll()——刪除所有的Document

 

3.刪除索引並不是立即從磁盤刪除,而是放入類回收站中,可回滾操作,需立即刪除時:

  writer.forceMergeDeletes();

  注:不能被搜索到的是不能刪除的,例如IntField


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM