博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Lucene索引
阅读量:6511 次
发布时间:2019-06-24

本文共 901 字,大约阅读时间需要 3 分钟。

一、lucene建立索引过程

1、解析器用来解析物理文件,从中提取出所需的文本,其作用于物理文件;
2、分析器用来分析文本内容(文字),其作用于解析器处理物理文件之后生成的文本;
Lucene没有自己开发语言分析程序,JavaCC来生成分析器;
分析器(analyzer)主要包含分词器和过滤器。分析器使用分析器和过滤器构成一个“管道”,文本在“滤过”这个管道之后,就成为可以进入管道的最小单位;
分词器(tokenizer)主要用于对文本资源进行切分,将文本规则切分为一个个可以进入索引的最小单位;
过滤器(tokenfilter)主要对分词器切分的最小单位进入索引进行预处理(大写转小写,复数转单数)

二、索引文件格式

segments文件——主要的索引块,其中包含主要的索引信息;
扩展名为fnm文件——存储Field的名称;
扩展名为fdt文件——存储所有设置了保存属性(Store.YES)的Field数据;
扩展名为fdx文件——用于存储文档在fdt文件中的位置;
扩展名为cfs文件——复合式索引格式的索引文件,相当于把多个索引文件合并起来,从未减少索引文件的数量;

三、索引优化

1、复合式索引格式 IndexWriter.setUseCompoundFile(true)
2、调整索引优化参数
a、mergeFactor 用于控制索引块的合并频率和大小
b、maxMergeDocs 用来限制每个索引块的文档数量
c、用来限制内现中的文档数量
3、内存缓冲器与索引合并
首先在内存中建立索引,然后将建立好的索引集中写到磁盘中去,从而加快索引速度
4、限制每个Field的词条数量
5、索引本身的优化 IndexWriter.optimize()合并索引

四、索引管理

1、查看:使用IndexReader类读取索引及其相关词条
2、删除:使用IndexReader类删除索引
3、更新:先删除、再新增

五、索引同步

1、Lucene并发访问规则
2、线程安全性
3、索引锁机制

 

转载于:https://www.cnblogs.com/renwei/p/4174186.html

你可能感兴趣的文章
系统时间错误导致make命令实际在循环执行configure命令
查看>>
网络电子温度计
查看>>
freemarker语法介绍及其入门
查看>>
数据分析的宏观步骤
查看>>
mvp和rxjava继续学习
查看>>
openjdk 打包编译问题
查看>>
有用的HTML5 pattern属性
查看>>
听说你想 520 表白
查看>>
使用iText JAR生成PDF
查看>>
Delphi 中的 procedure of object
查看>>
数据结构教案
查看>>
Android App的签名打包(晋级篇)
查看>>
php 源码安装参数配置大全
查看>>
android mediaplayer 架构
查看>>
@的用法
查看>>
session多服务器共享的方案梳理
查看>>
开源 免费 java CMS - FreeCMS1.7 网上调查
查看>>
设计模式02-职责链模式
查看>>
webstorm的体验
查看>>
httpclient 4.3.3 Timeout waiting for connection
查看>>