首页 > 代码库 > 学习lucene5.5.4的笔记

学习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拥有索引的增删改功能。

所谓改并不像关系型数据库中那样,lucene是删了后在新赠。

最好不要想着使用索引文档的id去删和改一个文档,因为lucene对这个支持的不多(可能是我刚入门,至少api上相关的方法寥寥无几),最好是在建立索引时自己去维护一个id域,通过term或者查询这个id来精确的去删除或改。

学习lucene5.5.4的笔记