IndexWriter.addIndexes解析

SegmentInfo包含除了delCount和delGen之外的段其他信息

SegmentInfoPerCommit既包含SegmentInfo,也包含delCount和delGen信息。

SegmentInfos是SegmentInfoPerCommit的集合,此外还包含counter,generation,user data信息。

addIndexes(Directory...)操作过程:

1.flush(false, true),不触发merge,但应用删除(apply deletes);

2.对于输入的directory,逐一拷贝到新directory中,其中注意对lucene3xstorefiles的处理,lucene3xstorefiles貌似可以是多个段共享的,所以如果有共享的,可以不拷贝。具体把segment拷贝的函数是copySegmentAsIs。

3.最后把段加入现有的segmentInfos中,同时调用checkpoint,视为一个检查点(相应计数值增加)。不会删除旧的文件。

addIndexes(IndexReader...)的逻辑不同:

将所有reader做一次合并,合并之后检查是否做cfs合并,是要建一个cfs文件(createCompoundFile),最后写入si文件,加入infos,checkpoint。

IndexWriter.addIndexes解析

时间: 2024-10-13 00:52:45

IndexWriter.addIndexes解析的相关文章

Lucene教程具体解释

注明:本文是由本人在开发有关基于lucene资源检索系统时的一点总结,当中一部分是自己依据开发过程自己总结的,也有部分是摘自网络,因无法获取当时摘文的地址,所以在此没有写源地址. 转载请声明出处 Lucene-3.0.0配置 一.Lucene开发环境配置 step1.Lucene开发包下载 step2.Java开发环境配置 step3.Tomcat安装 step4.Lucene开发环境配置 解压下载的lucene-3.0.0.zip,能够看到lucene-core-3.0.0.jar和lucen

solr4.3 solrconfig.xml配置文件

<?xml version="1.0" encoding="UTF-8" ?> <config>    <!--表示solr底层使用的是lucene版本-->   <luceneMatchVersion>LUCENE_43</luceneMatchVersion>      <!-- 表示solr引用包的位置,当dir对应的目录不存在时候,会忽略此属性-->   <lib dir=&quo

Luncene 学习入门

Lucene是apache组织的一个用java实现全文搜索引擎的开源项目. 其功能非常的强大,api也很简单.总得来说用Lucene来进行建立 和搜索和操作数据库是差不多的(有点像),Document可以看作是 数据库的一行记录,Field可以看作是数据库的字段.用lucene实 现搜索引擎就像用JDBC实现连接数据库一样简单.http://apache.justdn.org/lucene/java/ 1 lucene简介1.1 什么是lucene    Lucene是一个全文搜索框架,而不是应

[转]Lucene经验总结 (转注:较旧,但有干货)

// 转自:http://zdm2008.blog.163.com/blog/static/20491545200971894520912/ 个人的一点经验,分享之佘,还请大家补充!! 如果你想学Lucene,那么Sphinx你一定不能放过 ------------------------------------------------------------------------------------------------------------ 搜索引擎知识总结 1:搜索引擎按原理和工

Lucene实例教程

Lucene是apache组织的一个用java实现全文搜索引擎的开源项目. 其功能非常的强大,api也很简单.总得来说用Lucene来进行建立 和搜索和操作数据库是差不多的(有点像),Document可以看作是 数据库的一行记录,Field可以看作是数据库的字段.用lucene实 现搜索引擎就像用JDBC实现连接数据库一样简单. Lucene2.0,它与以前广泛应用和介绍的Lucene 1.4.3并不兼容. Lucene2.0的下载地址是http://apache.justdn.org/luce

Lucene教程(转)

Lucene教程 1 lucene简介1.1 什么是lucene    Lucene是一个全文搜索框架,而不是应用产品.因此它并不像www.baidu.com 或者google Desktop那么拿来就能用,它只是提供了一种工具让你能实现这些产品.2 lucene的工作方式    lucene提供的服务实际包含两部分:一入一出.所谓入是写入,即将你提供的源(本质是字符串)写入索引或者将其从索引中删除:所谓出是读出,即向用户提供全文搜索服务,让用户可以通过关键词定位源.2.1写入流程    源字符

Lucene搜索方法总结

转自:summerbell http://www.iteye.com/topic/569358 1.多字段搜索 使用 multifieldqueryparser 可以指定多个搜索字段. query query = multifieldqueryparser.parse(”name*”, new string[] { fieldname, fieldvalue }, analyzer); indexreader reader = indexreader.open(directory); index

Importing/Indexing database (MySQL or SQL Server) in Solr using Data Import Handler--转载

原文地址:https://gist.github.com/maxivak/3e3ee1fca32f3949f052 Install Solr download and install Solr from http://lucene.apache.org/solr/. you can access Solr admin from your browser: http://localhost:8983/solr/ use the port number used in installation. M

使用Tika、Luke工具解析多种类型(word、pdf、txt 等)索引文件

Tika 是2008年才产生的apache的一个项目,主要用于打开各种不同类型的文档,获取其文本信息.可以解析多种类型(word.pdf.txt .html等)文件! 甚至可以通过解析url,获取其网页信息.最后把其文本信息提起出来.这方面Tika有点像Jsoup..一般情况下,直接对word.pdf等文件直接创建索引是不对的,用luke工具查看之后,出现一大推乱七八糟的term.这个时候就可以用Tika 去在对其创建索引之前,转化处理其文本信息. package hhc; import jav