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

来源:互联网 发布:mac打不开文件夹 编辑:程序博客网 时间:2024/05/22 02:12

在前边的文章中多是用的添加一个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);
0 0
原创粉丝点击