删除 (软删除,仅添加了删除标记。调用IndexWriter.Optimize() 后真正删除)
IndexReader reader = IndexReader.Open(directory);
// 删除指定序号(DocId)的 Document。
reader.Delete( 123 );
// 删除包含指定 Term 的 Document。
reader.Delete( new Term(FieldValue, " Hello " ));
// 恢复软删除。
reader.UndeleteAll();
reader.Close();
增量更新 (只需将 create 参数设为 false ,即可往现有索引库添加新数据。)
Directory directory = FSDirectory.GetDirectory( " index " , false );
IndexWriter writer = new IndexWriter(directory, analyzer, false );
writer.AddDocument(doc1);
writer.AddDocument(doc2);
writer.Optimize();
writer.Close();
IndexReader reader = IndexReader.Open(directory);
// 删除指定序号(DocId)的 Document。
reader.Delete( 123 );
// 删除包含指定 Term 的 Document。
reader.Delete( new Term(FieldValue, " Hello " ));
// 恢复软删除。
reader.UndeleteAll();
reader.Close();
增量更新 (只需将 create 参数设为 false ,即可往现有索引库添加新数据。)
Directory directory = FSDirectory.GetDirectory( " index " , false );
IndexWriter writer = new IndexWriter(directory, analyzer, false );
writer.AddDocument(doc1);
writer.AddDocument(doc2);
writer.Optimize();
writer.Close();