`
wutao8818
  • 浏览: 615624 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

lucene几个类的含义3

阅读更多
引用
.fdx .fdt

.fdt=>存储具有Store.YES属性的Field
.fdx=>存储Document在.fdt中的位置。

引用
.tii .tis


.tis=>存储分词后的词条(term)
.tii=>tis的索引文件,标记每个.tis文件中词条的位置。

引用
deletable 格式

lucene文档删除后不会立即删除。等待下一次合并索引活对索引进行优化时真正删除。
类似windows回收站。所有等待删除的内容都放在这个文件中。

引用
复合索引格式 .cfs


indexWriter.useCompoundFile .默认 true
表示是否使用复合索引格式来保存索引。

如果索引内容巨大,文件数量巨大,打开文件数量巨大极大的消耗系统资源。lucene提供单文件索引格式。

索引过程优化

引用
合并因子 mergeFactor


含义:
1。设为10。每次索引添加10个document,就会有一个新的segment在磁盘上建立
2。当第10个segment建立以后,它会被合并成为一个具有100个document的新segment
3。接下来,每100个document创建一个新的segment,当第999个文档被加入索引,磁盘已经有9个segment,其中每个都有100个document,而第901个到999个document此时正在内存中,还未被写入磁盘。
4。如果再向索引中加入一个document,前9个就会和第10个新创建的segment合并。成为一个具有1000个document的segment。

相对内存操作。IO比较费时。所以mergeFactor小一点。那么写磁盘的机会就多一些。
所以内存大的,可以把这个设置的大一些。减少了磁盘的写入,建索引的速度也快一些。
如果是批量的文档建立索引,可以选择较大的mergeFactor。如果是间断性的写入,每次间隔较长,并且一次写入的数量不多,可以选择较小的mergeFactor。

引用
maxMergeDocs


mergeFactor中文档数量一直在增加,如果不做限制,文件系统的文件数量会很大。所以需要做一些限制。

当mergeFactor为10。maxMergeDocs为2000。segment中文档数量为1000。由于受到maxMergeDocs限制。一个文档不超过2000。因此下一次合并发生在segment中有2000个文档时,而不是在10000。

在一个较大的maxMergeDocs适用应对大批量的文档索引建立。而增量式的索引则应使用较小的maxMergeDocs.

引用
minMergeDocs


索引保存到磁盘前,需要保存在内存中。minMergeDocs就是用来限制这个内存中的文档数量。

它的新名字。maxBufferedDocs.

更大的内存,更大的maxBufferedDocs。
小的设置,频繁的IO



分享到:
评论

相关推荐

    lucene源码和程序

    在Lucene中,主要涉及以下几个核心概念: 1. **文档(Document)**:在Lucene中,文档是信息的基本单位,可以代表网页、电子邮件或者其他形式的数据。文档由一系列字段(Field)组成,每个字段有名称和内容,比如...

    lucene_demo例子

    这些示例通常会涵盖以下几个关键知识点: 1. **安装与配置**:Lucene的下载、构建环境的搭建,包括引入相应的Maven或Gradle依赖,以及设置Java开发环境。 2. **索引创建**:Lucene是如何通过Analyzer分析文本,将...

    Lucene加庖丁解牛测试类

    在“Lucene加庖丁解牛测试类”中,我们可以从以下几个方面进行实践: 1. **索引构建**:测试类应包含创建索引的代码,这通常涉及Analyzer的选择(如StandardAnalyzer)、Document的构建以及IndexWriter的使用。...

    lucene 入门

    Lucene 的核心组件包括以下几个部分: 1. **索引(Indexing)**:Lucene 首先将非结构化的文本数据转化为结构化的索引,以便于快速检索。这个过程包括分词(Tokenization)、词干提取(Stemming)、停用词处理...

    Lucene中文分词器组件

    在Lucene中,常见的中文分词器组件有以下几个: 1. **IK Analyzer**:IK Analyzer是一个开源的、基于Java实现的中文分词工具,支持多种分词模式,包括精确模式、全模式、最短路径模式等。它可以根据实际需求进行...

    lucene1.0.doc

    Lucene的核心组件包括以下几个部分: 1. 文档(Document):代表要索引的数据源,可以是网页、文章、数据库记录等。 2. 字段(Field):文档中的数据被划分为不同的字段,每个字段具有特定的含义和处理方式。 3. ...

    Lucene检索算法的改进.pdf

    文章详细阐述了一个改进后的系统模型,该模型主要包括以下几个关键步骤: 1. **天网源数据**:指原始的网页数据来源,是整个检索系统的基础。 2. **数据转换**:通过网页分析器和XML转换器将原始网页数据转换成...

    lucene文档--

    Lucene的核心概念包括以下几个方面: 1. **索引**:在Lucene中,索引是将非结构化的文本数据转化为可搜索的形式。它通过分词器(Tokenizer)将文本拆分成单词,然后对这些单词创建倒排索引。倒排索引是一种数据结构...

    一个例子教你学懂搜索引擎(lucene)

    在给定的文件“luceneTest”中,可能包含了示例代码或者配置文件,这通常包括以下几个步骤: 1. 初始化索引目录:创建一个FSDirectory对象,指定用于存储索引的物理路径。 2. 创建索引写入器:使用...

    Lucene 原理与代码分析完整版1

    在索引中,主要存储的是以下几个关键元素: 1. **文档(Document)**:这是索引的基本单位,可以是一篇文章、一封邮件或其他任何包含文本的数据。在Lucene中,文档由一系列字段(Field)组成,每个字段都有其特定的...

    PanGu.Lucene.Analyzer.rar

    Pangu分析器的核心功能包括以下几个方面: 1. **中文分词**:中文不同于英文,单词之间没有明显的边界。Pangu分析器采用了先进的分词算法,能够准确识别和切割中文词语,如使用字典匹配、基于统计的模型等方法。 2...

    lucene索引

    创建索引是 Lucene 的核心步骤,包括以下几个阶段: #### 2.1 初始化索引目录 首先,需要创建一个索引目录,这可以是本地文件系统、网络共享目录,甚至是内存中的索引。 ```java Directory directory = ...

    java拼车网雏形(Ext2.0+SSH+oracle10g+lucene2.4)

    【标题】"java拼车网雏形(Ext2.0+SSH+oracle10g+lucene2.4)" 涉及的核心技术是Java Web开发中的几个关键组件,包括ExtJS 2.0前端框架,Spring、Struts2和Hibernate(SSH)后端框架,Oracle 10g数据库以及Lucene ...

    java大数据作业_7Flume、Kafka、Sqoop、Lucene

    建立索引的过程通常包括以下几个步骤: 1. **创建索引器**:首先需要创建一个 IndexWriter 对象,用于管理索引的写入操作。 2. **文档解析**:将要索引的文档转换为 Document 对象,每个文档包含多个 Field。 3. **...

    我自己的demo例子

    从提供的文件名"sample.ck.paper.lucene3"来看,我们可以推断出几个关键信息: 1. **sample**:这个词通常用来表示示例或样例,这与标题中的“demo例子”相吻合,表明这是一个用来演示或教学的例子。 2. **ck**:...

    Manning Taming Text How to Find, Organize, and Manipulate It. Jan.2013.pdf

    2. 描述部分提到的关键词“lucene solr search NLP”指向了文档讨论的几个核心主题: - Lucene:这是由Apache软件基金会支持的一个高性能的、可伸缩的全文检索库,广泛用于搜索引擎和文档检索系统。它以Java编写,...

    Solr-ik分词

    在Solr中配置Ik分词器,通常需要以下几个步骤: 1. 下载ikanalyzer-solr5版本的分词器库,并将其添加到Solr的lib目录下,确保Solr启动时能够加载到这个库。 2. 在Solr的schema.xml文件中,定义一个字段类型(Field...

    重复数字统计器 .e文件

    使用ES配合“重复数字统计器.e”有以下几个优点: 1. **分布式存储**:ES具有强大的横向扩展能力,能轻松处理PB级别的数据。 2. **实时分析**:ES的实时索引和搜索功能,使得用户可以在数据输入的同时获得统计结果。...

    Android 智能问答机器人的实现

    博客实例代码中的"zhy_robot_01"可能包含以下几个关键部分: 1. **用户界面(UI)设计**:包括输入框供用户输入问题,以及显示答案的区域。可以使用Android Studio提供的布局设计工具创建。 2. **事件监听器**:监听...

    基于HDFS、ElasticSearch、Spark和TensorFlow的文本分析中台基础架构.pptx

    该文本分析中台的基础架构主要包括以下几个部分: 1. **数据收集层**:通过日志采集工具(如 Flume、Logstash 等)将各类文本数据收集起来,存储至 HDFS。 2. **数据处理层**:利用 Spark 进行数据预处理,包括数据...

Global site tag (gtag.js) - Google Analytics