-
Lucene-09-segment 中文分词
为什么要使用lucene中文分词器
在lucene的开发过程中,我们常会遇到分词时中文识别的问题,lucene提供了 lucene-analyzers-common.jar 包来支持分词,但多的是对英国,法国,意大利等过语言的支持,
因此我们需要引入中文分词的概念。
各种中文分词器及其对比
jcseg 中文分词器
jcseg 是使用Java开发的一款开源的中文分词器, 使用mmse...
2022-01-10 13:01:55 |
Lucene
-
Lucene-08-analysis 分析器
analysis说明
lucene ananlysis应用场景
lucene提供了analysis用来将文本转换到索引文件或提供给IndexSearcher查询索引;
对于lucene而言,不管是索引还是检索,都是针对于纯文本输入来讲的;
通过lucene的强大类库我们可以访问各种格式的文档,如HTML、XML、PDF、Word、TXT等,
我们需要传递给lucene的只是文件中的...
2022-01-10 13:01:55 |
Lucene
-
Lucene-07-field 字段类型
Lucene的Field说明
Lucene存储对象是以document为存储单元,对象中相关的属性值则存放到Field中;
lucene中所有Field都是IndexableField接口的实现
接口
表示用于索引的单个字段。 IndexWriter 使用 Iterable<IndexableField> 作为文档。
public interface Indexable...
2022-01-10 13:01:55 |
Lucene
-
Lucene-06-IndexWriter 详解
Lucene 索引创建
构建过程
索引的构建过程描述如下:
1)判断JRE版本是否为64位和是否支持堆外内存,并创建
1.1 如果满足条件,创建MMapDirectory,此种Directory可以有效的利用虚拟机内存地址空间 ;
1.2 如果不满足以上条件,判断系统是否是windows,如果满足条件,创建SimpleFSDirectory,此种directory提供了性能不太...
2022-01-10 13:01:55 |
Lucene
-
Lucene-05-的总体架构
Lucene 的整体结构
在 Lucene in action 中,Lucene 的构架和过程如下图,
说明Lucene是有索引和搜索的两个过程,包含索引创建,索引,搜索三个要点。
让我们更细一些看 Lucene 的各组件:
被索引的文档用Document对象表示。
IndexWriter通过函数addDocument将文档添加到索引中,实现创建索引的过程。
Lucene...
2022-01-10 13:01:55 |
Lucene
-
Lucene-04-全文索引实现原理
全文检索
那么什么叫做全文检索呢?这要从我们生活中的数据说起。
我们生活中的数据总体分为两种:结构化数据和非结构化数据。
结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等。
非结构化数据:指不定长或无固定格式的数据,如邮件,word文档等。
当然有的地方还会提到第三种,半结构化数据,如XML,HTML等,当根据需要可按结构化数据来处理,也可抽取出纯文本按非结构化数据来...
2022-01-10 13:01:55 |
Lucene
-
Lucene-03-基本组件概念介绍
基本概念
在深入解读Lucene之前,先了解下Lucene的几个基本概念,以及这几个概念背后隐藏的一些东西。
Index(索引)
类似数据库的表的概念,但是与传统表的概念会有很大的不同。传统关系型数据库或者NoSQL数据库的表,在创建时至少要定义表的Scheme,定义表的主键或列等,会有一些明确定义的约束。
而Lucene的Index,则完全没有约束。
Lucene的Index...
2022-01-10 13:01:55 |
Lucene
-
Lucene-02-get start 入门例子
入门例子
maven 引入
引入基本的 maven 依赖。
<dependencies>
<!-- https://mvnrepository.com/artifact/org.apache.lucene/lucene-core -->
<!-- Lucene核心库 -->
<dependency>
...
2022-01-10 13:01:55 |
Lucene