28.2 IK分词器

1.IK分词器

之前我们创建索引,查询数据,都是使用的默认的分词器,分词效果不太理想,会把text的字段分成一个一个汉字。IK分词器在是一款 基于词典和规则 的中文分词器。

1.1 Analysis分词

Analysis-文本分析是把全文本转换一系列单词的过程,叫分词。

举例:默认英文句子是通过空格进行分词并进行小写转换

doc1:A happy new year to you 可以分词为 a 、happy、new、year、to、you

doc2:Happy birthday 可以分词为happy 、birthday

1.2 Analyzer分词器

Analyzer分词器是分词的技术实现,在ES中就提供了以下多种分词器进行不同方式的分词操作

  • Standard Analyzer-默认分词器,按词切分,小写处理

  • Simple Analyzer-按照非字母切分(符号被过滤) ,小写处理

  • Stop Analyzer-小写处理,停用词过滤(the, a, is)

  • Whitespace Analyzer-按照空格切分,不转小写

  • Keyword Analyzer-不分词,直接将输入当作输出

  • Patter Analyzer-正则表达式,默认\W+(非字符分隔)

  • Language-提供了30多种常见语言的分词器

        其他三方分词器,如 IK,THULAC

2. IK分词器的安装

2.1 下载

        下载与你ES对应版本的IK分词器。

Releases · medcl/elasticsearch-analysis-ik · GitHubThe IK Analysis plugin integrates Lucene IK analyzer into elasticsearch, support customized dictionary. - Releases · medcl/elasticsearch-analysis-ikhttps://github.com/medcl/elasticsearch-analysis-ik/releases

2.2 创建目录

        在/es安装目录/plugins目录新建ik目录

28.2 IK分词器_第1张图片

2.3 解压

        将elasticsearch-analysis-ik-8.8.2内容解压缩到ik目录下

28.2 IK分词器_第2张图片

2.4 重启Elasticsearch

3.IK分词器配置

        IK分词器有两种分词模式:ik_max_word和ik_smart模式。

3.1 ik_smart

        会做最粗粒度的拆分,比如会将测试开发工程师拆分为测试 、开发、工程师等词语。

3.2 ik_max_word

        会将文本做最细粒度的拆分,比如会将`测试开发工程师拆分为测试、试开、开发、工程师、工程、师

# 查看IK分词效果
get _analyze
{
  "analyzer": "ik_smart",
  "text": "测试开发工程师"
}
get _analyze
{
  "analyzer": "ik_max_word",
  "text": "测试开发工程师"
}

你可能感兴趣的:(JavaEE,java,中文分词)