分词

分词是指文本转换成一系列单词(term or token)的过程,也可以叫做文本分析,关键词为Analysis。
举例
彭于晏是最帅的明星
分词为:(彭于晏)(最帅)(明星)
Character Filter

分词机制

效果

Character Filter

对原始文件进行处理:例如去除html标签,特殊字符等

Tokenizer

将原始文件进行分词:例:二院二部(二院、二部)

Token Filters

分词后的关键字进行加工:例转小写、删除语气词、近义词、同义词等

示例:

ik分词器可以在java用吗 ik分词器 分词原理_分词器


注:这个_analyze中standard(默认)分词很简陋,只能靠空格,符号等进行分割,并且仅能分割英文,不支持中文。

下面继续加一个分词,将大写转换为小写

ik分词器可以在java用吗 ik分词器 分词原理_elasticsearch_02


进行去标签化的分词

ik分词器可以在java用吗 ik分词器 分词原理_分词器_03


中文的一些分词机制

ik分词器可以在java用吗 ik分词器 分词原理_elasticsearch_04


由于中文的博大精深,以上分词器无法满足需求,所以需要引入特殊语法的分词器

特殊语法的分词器

ik分词器可以在java用吗 ik分词器 分词原理_自定义_05

IK分词器(常用)

ik分词器可以在java用吗 ik分词器 分词原理_elasticsearch_06


ik分词器可以在java用吗 ik分词器 分词原理_分词器_07


加载后进行实验,如下图即可发现分词规律。

ik分词器可以在java用吗 ik分词器 分词原理_自定义_08


另外一种ik分法

ik分词器可以在java用吗 ik分词器 分词原理_分词器_09


注:

这样分词,会有 “世界上”、“世界”。这样的多意的叠词出现。

优点:这样分词很是详细

缺点:分词后倒排序会很多,大大的减小了搜索效率。

自定义分词器

自定义分词器可以多去官网查看链接: 官网.

示例

下面我们创建个叫my的分词器,它里面嵌套的都是下面我们自定义的过滤器,和分词器,这样顺序为,过滤——分词——后处理。

ik分词器可以在java用吗 ik分词器 分词原理_ik分词器可以在java用吗_10


查询一条文档里具体的first_name 的值。

批量插入 _bulk

示例如下

ik分词器可以在java用吗 ik分词器 分词原理_分词器_11


如果不是这个格式 是插入不了滴!

ik分词器可以在java用吗 ik分词器 分词原理_ik分词器可以在java用吗_12