您的位置:首页 > 其它

lucene建立索引时候的用到的一些文档和目录操作

2016-04-06 13:54 387 查看
在前边的文章中多是用的添加一个document,这里介绍一下其它的文档操作

1,按照编号删除

public void deleteDoc(String indexDir) throws Exception{
IndexReader reader = IndexReader.open(indexDir);
reader.delete(1);
reader.close();
}


2,根据term来删除

public void deleteDocWithTerm(String indexDir) throws Exception{
IndexReader reader = IndexReader.open(indexDir);
reader.delete(new Term("city","beijing"));
reader.close();
}


3,取消删除

public void undeleteDoc(String indexDir) throws Exception{
IndexReader reader = IndexReader.open(indexDir);
reader.delete(1);
reader.undeleteAll();
reader.close();
}


4,删除后优化

public void mergeDoc(String indexDir) throws Exception{
IndexReader reader = IndexReader.open(indexDir);
reader.delete(new Term("city","beijing"));
reader.close();

IndexWriter writer = new IndexWriter(indexDir,new StandardAnalyzer(),true);
writer.optimize();
writer.close();
}


5,把RAMDirectory中的索引合并到FSDirectroy中

public void indexOperator(String indexDir) throws Exception{
FSDirectory fsDir = FSDirectory.getDirectory(indexDir,true);
RAMDirectory ramDir = new RAMDirectory();
IndexWriter fsWriter = new  IndexWriter(fsDir,new SimpleAnalyzer(),true);
IndexWriter ramWriter = new IndexWriter(ramDir,new SimpleAnalyzer(),true);
//..ramWriter add doc
fsWriter.addIndexes(new Directory[]{ramDir});
ramWriter.close();

}


6,把索引的内容直接读入内存

RAMDirectory ramDir = new RAMDirectory(indexDir);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  lucene 文档