3. 使用场合:多个搜索引擎查询的数据结果的合并信息操作:添加索引:删除索引 恢复索引
备注:使用IndexReader对象删除文件对象时,它的并非实质上删除,仅仅时设置一个删除的标识,直到IndexReader调用close方法之后才真正删除它们。删除可以根据特定项和索引删除,在删除之后最好使用IndexWriter其进行优化设置.(注意Luence中并没有专门update的方法设置修改索引必须先删除后添加新的索引的方式开发)
/**
* 删除索引对象
* @throws IOException
*/
public void deleteIndex(Directory dir)throws IOException
{
//打开文件的删除使用IndexReader类
IndexReader reader=IndexReader.open(dir);
//reader.maxDoc() 下一个Document对象的编号为2
//reader.numDocs() 索引中有文档数目
System.out.println("before delete max doc="+reader.maxDoc()+" numDocs "+reader.numDocs());
//删除编号为1的文档对象
reader.delete(1);
//reader.isDeleted(1) 检测是否删除
//关闭索引读取对象
reader.close();
//对删除后的信息进行重新编号的文档进行优化
IndexWriter writer=new IndexWriter(dir,new WhitespaceAnalyzer(),false);
//采用优化方案
writer.optimize();
writer.close();
reader=IndexReader.open(dir);
System.out.println("after delete max doc="+reader.maxDoc()+" numDocs "+reader.numDocs());
reader.close();
}
/**
* 修改索引方法
* @throws IOException
*/
public void updateIndex()throws IOException
{
//测试删除前的文档的数量
assertEquals(1, this.getHitCount("city", "Amsterdam"));
IndexReader reader=IndexReader.open(dir);
//删除索引的信息
reader.delete(new Term("city","Amsterdam"));
// 在文档被设置删除标识,但没有执行最后删除之前,恢复被标记为删除的文档。reader.undeleteAll();
reader.close();
//测试删除后文档数量
assertEquals(0, this.getHitCount("city", "Amsterdam"));
IndexWriter writer=new IndexWriter(dir,this.getAnalyzer(), false);
Document doc=new Document();
doc.add(Field.Keyword("id", "1"));
doc.add(Field.UnIndexed("country", "Netherland"));
doc.add(Field.UnStored("contents","Amsterdam has lots of bridges"));
doc.add(Field.Text("city","Haag"));
writer.addDocument(doc);
writer.optimize();
writer.close();
assertEquals(1, this.getHitCount("city", "Haag"));
}
/**
* 字词分析器的
*/
public Analyzer getAnalyzer()
{
return new WhitespaceAnalyzer();
}
分享到:
相关推荐
用来测试luence运行的结果是否正确。运行直接使用即可。
lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习...
lucene 2.9 API , lucene API,lucene 学习资料,lucene2.9 CHM
完整的IKanalyzer2012和luence4.3.0、luence3.6.1的压缩包,内含有IKAnalyzer2012的说明文档
Luence和ElasticSearch面试准备.docx
获取全部Luence数据
lucene 原理与分析,底层源码解析,应用场景及实践,相关配置
Luence.Net搜索Demo
Luence in Action 中英文 pdf
luence4.6 源代码
利用Luence.net做的搜索,实现搜索高亮,盘古分词,只能匹配,是做搜索的好例子。
下载可运行。 使用前后端分离架构, 使用springMvc 、 spring、 mybatis、 luence等技术开发的开源知识库所有后台代码
使用luence索引数据库中的记录,完整的例子
包含翻译后的API文档:lucene-core-7.3.1-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.apache.lucene:lucene-core:7.3.1; 标签:apache、lucene、core、中文文档、jar包、java; 使用方法:解压翻译后的API...
lucene基础学习笔记&源码
首先读取文件,添加数据库记录,然后lucene读取数据库生成索引文件,再通过lucene检索
基于ajax与luence构建搜索引擎的设计和实现论文.doc
VerticalSearcher基本的垂直搜索引擎,实现了基本的网络爬虫功能以及用Luence实现检索
基于ajax与luence构建搜索引擎的设计和实现_论文.doc
stopword+dic 分词器分析