学习lucene5.5.4的笔记
说说几个常用的类。
OpenMode是一个枚举类,有三个元素,分别表示IndexWriter的打开模式。
CREATE:每次打开IndexWriter时清空当前索引目录下的索引,再新建索引。
APPEND:打开IndexWriter时在当前索引目录下进行追加索引。
CREATE_OR_APPEND:打开IndexWriter时如果当前索引目录下没有索引,那么新建索引,否则进行追加索引。
IndexWriterConfig默认的openMode是OpenMode.CREATE_OR_APPEND。
我使用的这个版本自带的有中文分词器,名为SmartChineseAnalyzer,聪明的中文分词器,它不在核心包,可以在smartcn这个包内找到,其实并不那么聪明,它的默认停词只有标点符号,效果并不好,使用时推荐自己去加载停词库,这里有个停词库,分享给大家。
Analyzer analyzer= new SmartChineseAnalyzer(WordlistLoader.getWordSet(IOUtils.getDecodingReader(Searcher.class, "stopword.txt",StandardCharsets.UTF_8), "//"));
//stopword.txt中就是我的停词
Field是添加到索引文档中的数据,称为域(相当于关系型数据库表中的字段)。
Field有很多的扩展子类,如IntField,StringField等,它们大部分默认都是可索引的,如果这个域不需要被索引,那么我们可以去操作FieldType解决。
IndexWriter拥有索引的增删改功能。
索引的删除并不是立即从磁盘删除,而是放入索引回收站中,可回滚操作,需立即删除时:writer.forceMergeDeletes();
所谓改并不像关系型数据库中那样,lucene是删了后在新赠。
最好不要想着使用索引文档的id去删和改一个文档,因为lucene对这个支持的不多(可能是我刚入门,至少api上相关的方法寥寥无几),最好是在建立索引时自己去维护一个id域,通过term或者查询这个id来精确的去删除或改。
numDocs():索引目录下的文档总数,包括内存中缓存的文档,计算删除项
maxDoc():索引目录下的文档总数,包括内存中缓存的文档,不计算删除项
numRamDocs():内存中缓存的文档总数(你当前正在索引的文档数量)
IndexOptions索引选项枚举类,下面是成员的解释,目前我能理解的大概意思就是这样,以后再修改。
NONE:不索引。
DOCS:只有域的完整文本索引。
DOCS_AND_FREQS:只有域的完整文本和分析后的词索引。
DOCS_AND_FREQS_AND_POSITIONS:只有域的完整文本和分析后的词和位置索引。
DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS:只有域的完整文本和分析后的词和位置以及偏移量索引。
lucene开发辅助工具:luke 下载地址https://github.com/DmitryKey/luke/releases
我使用的是lucene5.5.4,但luke貌似没有支持5.5.4的版本,临近的版本只有5.5.0和6.0.0,luke5.5.0和luke6.0.0都是基于jdk1.8开发的,所以尽管使用的lucene5.5.4是使用jdk1.7但使用luke时你必须给它配置一个jdk1.8的运行环境。由于lucene的api不向下兼容的原因,所以这两个临近的版本选择哪个都无所谓,临近的版本一般都不会有什么大的改动。
学习lucene5.5.4的笔记的更多相关文章
- 学习参考《零基础入门学习Python》电子书PDF+笔记+课后题及答案
国内编写的关于python入门的书,初学者可以看看. 参考: <零基础入门学习Python>电子书PDF+笔记+课后题及答案 Python3入门必备; 小甲鱼手把手教授Python; 包含 ...
- 学习《零基础入门学习Python》电子书PDF+笔记+课后题及答案
初学python入门建议学习<零基础入门学习Python>.适合新手入门,很简单很易懂.前一半将语法,后一半讲了实际的应用. Python3入门必备,小甲鱼手把手教授Python,包含电子 ...
- 前端程序员学习 Golang gin 框架实战笔记之一开始玩 gin
原文链接 我是一名五六年经验的前端程序员,现在准备学习一下 Golang 的后端框架 gin. 以下是我的学习实战经验,记录下来,供大家参考. https://github.com/gin-gonic ...
- 设计模式学习起点 UML类图笔记
UML类图笔记 大学开设的软件设计课程一般都会学习UML类图,大部分关于设计模式的描述都是使用的UML类图,可以说类图的表示是学习设计模式的起点.UML定义类之间的关系主要有六种:泛化关系.实现关系. ...
- Coursera深度学习(DeepLearning.ai)编程题&笔记
因为是Jupyter Notebook的形式,所以不方便在博客中展示,具体可在我的github上查看. 第一章 Neural Network & DeepLearning week2 Logi ...
- hinton教授的本科生课程CSC321-机器学习中的神经网的笔记
最近一直在看仙守博友所记录的笔记 Hinton的CSC321课程(完结,待文字润色): 1.lecture1-NN的简介 2.lecture2-NN结构的主要类型的概述和感知机 3.lecture3- ...
- 深度学习-语言处理特征提取 Word2Vec笔记
Word2Vec的主要目的适用于词的特征提取,然后我们就可以用LSTM等神经网络对这些特征进行训练. 由于机器学习无法直接对文本信息进行有效的处理,机器学习只对数字,向量,多维数组敏感,所以在进行文本 ...
- 我的 CSDN 博客目录索引(主要记录了我学习视频、书籍的笔记,持续更新中)
我的 CSDN 博客地址: lw_power的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/lw_power 佟刚老师<Spring4视频教程>学习笔记 ...
- 学习javascript语言精粹的笔记
1.枚举: 用for in 语句来遍历一个对象中所有的属性名,该枚举过程将会列出所有的属性也包括涵数和方法,如果我们想过滤掉那些不想要的值,最为常用的过滤器为hasOwnProperty方法,以及使用 ...
随机推荐
- kuangbin专题十六 KMP&&扩展KMP HDU3294 Girls' research
One day, sailormoon girls are so delighted that they intend to research about palindromic strings. O ...
- 洛谷 P2141 珠心算测验
嗯... 先看一下这个题.... 题目描述 珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术.珠心算训练,既能够开发智力,又能够为日常生活带来很多便利,因而在很多学校得到普及. 某学校的 ...
- linux 虚拟环境问题
1.python环境 python2和python3命令用来区分python版本 pip2和pip3命令用来区分pip,你的包到底安装在哪里pip3 install xxx sudo apt inst ...
- react 中文文档案例七 (温度计)
const scaleNames = { c: 'Celsius', f: 'Fahrenheit' }; function toCelsius(fahrenheit) { ) * / ; } fun ...
- Java实现范围内随机数
JDK1.7及以上 int randomNum = ThreadLocalRandom.current().nextInt(min, max + 1); // 包含max,所以要加1 JDK1.7以前 ...
- Alibaba Java Coding Guidelines 安装(eclipse)并简单使用
源码地址:https://github.com/alibaba/p3c 1.安装 第1步.help >> Instakll New Software... 第2步.在Work with中输 ...
- java——时间复杂度、动态数组
O(n)不一定小于O(n^2),要具体来看,而我们说的这种时间复杂度其实是渐进时间复杂度,描述的是n趋近于无穷的情况. 动态数组的时间复杂度: 添加操作:O(n) addLast()的均摊复杂度为O( ...
- robotframework 常用快捷键
重命名——>F2 执行用例——>F8 创建新工程——>ctrl+n 创建新测试套——>ctrl+shift+f 创建新用例——>ctrl+shift+t 创建新关键字—— ...
- override javascript escape funcation
var oldescape = window.escape; escape = function (sStr) { return oldescape(sStr).replace(/\+/g, '%2B ...
- Murano Weekly Meeting 2015.08.11
Meeting time: 2015.August.11th 1:00~2:00 Chairperson: Serg Melikyan, PTL from Mirantis Meeting summ ...