lucene建立索引时候的用到的一些文档和目录操作
2016-04-06 13:54
387 查看
在前边的文章中多是用的添加一个document,这里介绍一下其它的文档操作
1,按照编号删除
2,根据term来删除
3,取消删除
4,删除后优化
5,把RAMDirectory中的索引合并到FSDirectroy中
6,把索引的内容直接读入内存
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);
相关文章推荐
- C#生成Word文档代码示例
- 如何使用C#从word文档中提取图片
- jQuery窗口、文档、网页各种高度的精确理解
- 比较全的一个C#操作word文档示例
- C#编程实现Excel文档中搜索文本内容的方法及思路
- java Lucene 中自定义排序的实现
- php文档工具PHP Documentor安装与使用方法
- MongoDB修改、删除文档的域属性实例
- 使用Java的Lucene搜索工具对检索结果进行分组和分页
- 跟老齐学Python之Python文档
- Python文档生成工具pydoc使用介绍
- 关于lucene搜索时排序的问题
- 从零开始使用Hubbledotnet进行全文搜索-前言
- 打造自己的搜索引擎
- [网络开发]RakNet文档翻译(3)——Creating Packets
- Lucene整合"庖丁解牛"中文分词包
- JAVA lucene全文检索工具包的理解与使用 分享
- Lucene:基于Java的全文检索引擎简介
- 二、家庭办公环境的Postfix安装技巧和提示
- 使用Lucene 3.3.0的结构遍历TokenStream的内容.