使用ID号来删除特定文档

//前面已经说了,在建立索引的过程中,Lucene会为每一个加入索引的Document赋予一个ID号。
//这个ID号标识每个文档。
//这里的删除机制类似于一个操作系统里的回收站的机制。既可以删除,又可以恢复。
package directory; 


import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
//Lucene的删除机制
public class DeleteDocument {
IndexReader reader = IndexReader.open(INDEX_STORE_PATH);
//删除ID为0的Document
reader.deleteDocument(0);
reader.close();

IndexReader reader2 = new IndexReader.open(INDEX_STORE_PATH);
System.out.println(reader.numDocs());
System.out.println(reader.document(1));
System.out.println(reader.document());
System.out.println(reader.document())
}


//这个是lucene的恢复机制

类似于回收站的恢复

class unDeleteAll{


//
IndexWriter writer = new IndexWriter(INDEX_STORE_PATH, new StandardAnalyzer(), false);
writer.optimize();
writer.close();

IndexReader reader = new IndexReader(INDEX_STORE_PATH);
System.out.prinln(reader.numDocs());
reader.undeleteALL();
System.out.println(reader.numDocs());




}

你可能感兴趣的:(使用ID号来删除特定文档)