一文教会你 分词器elasticsearch

一文教会你 分词器elasticsearch

文章目录

1、安装 ik 分词器

1.1 查看版本匹配

1.2 下载对应版本的分词器

1.3 安装、查看

2、测试分词器

1.1 默认分词器

1.2 使用分词器(1)

1.3 使用分词器(2)

3、自定义词库

3.1 修改IKAnalyzer.cfg.xml

3.2 nginx的设置

1.3 测试

5、后语

前言 一个 tokenizer(分词器)接收一个字符流,将之分割为独立的 tokens(词元,通常是独立的单词),然后输出 tokens 流。 例如,whitespace tokenizer 遇到空白字符时分割文本。它会将文本 “Quick brown fox!” 分割为 [Quick, brown, fox!]。 该 tokenizer(分词器)还负责记录各个 term(词条)的顺序或 position 位置(用于 phrase 短语和 word proximity 词近邻查询),以及 term(词条)所代表的原始 word(单词)的 start(起始)和 end(结束)的 character offsets(字符偏移量)(用于高亮显示搜索的内容)。 Elasticsearch 提供了很多内置的分词器,可以用来构建 custom analyzers(自定义分词器)。

安装elasticsearch-analysis-ik分词器需要和elasticsearch的版本匹配。我第一次安装没有匹配版本就导致分词器不能使用、安装后还报错

1、安装 ik 分词器

1.1 查看版本匹配

这里也有个小坑、我的是elasticsearch版本是7.17.2 ,然后这个版本也没说8.几的不能用,第一次装了一个最新的版本;装完后、发现版本不匹配。又重新下载安装了同一个版本的elasticsearch-analysis-ik

版本对应位置:https://github.com/medcl/elasticsearch-analysis-ik/blob/master/README.md

1.2 下载对应版本的分词器

分词器 https://github.com/medcl/elasticsearch-analysis-ik

1.3 安装、查看

直接将文件解压,放入到plugins目录下。如果你进行了目录挂载,就可以在容器外部操作。我这里进行了挂载,只需要将解压后的文件放入到对应挂载目录就可以。

2、测试分词器

1.1 默认分词器

POST _analyze

{

"text": "我是中国人"

}

1.2 使用分词器(1)

POST _analyze

{

"analyzer": "ik_smart",

"text": "我是中国人"

}

1.3 使用分词器(2)

POST _analyze

{

"analyzer": "ik_max_word",

"text": "我是中国人"

}

提示:能够看出不同的分词器,分词有明显的区别,所以以后定义一个索引不能再使用默认的 mapping 了,要手工建立 mapping, 因为要选择分词器

3、自定义词库

3.1 修改IKAnalyzer.cfg.xml

修改/usr/share/elasticsearch/plugins/ik/config/中的 IKAnalyzer.cfg.xml ,如果进行了目录挂载,只需要在外部对应目录修改就行,我这里的外部挂载目录是:/mydata/elasticsearch/plugins/ik/config

3.2 nginx的设置

首先你要安装了nginx,我这以下操作步骤是基于nginx挂载到外部目录。

需要将这个链接地址放置到IKAnalyzer.cfg.xml中对应的远程词库目录

1.3 测试

POST _analyze

{

"analyzer": "ik_max_word",

"text": "汪汪队和猪猪对讨论乔碧罗"

}

5、后语

我这里最终的目的是项目中要使用到分词器的使用、不安装不行要执行的语句

我的代码执行结束后、报的是这个索引找不到。所以要创建、创建又需要用到分词器。

##创建一个gulimall_product新的索引

PUT gulimall_product

{

"mappings": {

"properties": {

"attrs": {

"type": "nested",

"properties": {

"attrId": {

"type": "long"

},

"attrName": {

"type": "keyword"

},

"attrValue": {

"type": "keyword"

}

}

},

"brandId": {

"type": "long"

},

"brandImg": {

"type": "keyword"

},

"brandName": {

"type": "keyword"

},

"catalogId": {

"type": "long"

},

"catalogName": {

"type": "keyword"

},

"hasStock": {

"type": "boolean"

},

"hotScore": {

"type": "long"

},

"saleCount": {

"type": "long"

},

"skuId": {

"type": "long"

},

"skuImg": {

"type": "keyword"

},

"skuPrice": {

"type": "keyword"

},

"skuTitle": {

"type": "text",

"analyzer": "ik_smart"

},

"spuId": {

"type": "keyword"

}

}

}

}

相关推荐

京东公布618战绩:整体订单量超22亿单,主站DAU创历史新高
荣耀盒子 标准版
beat365唯一官网

荣耀盒子 标准版

📅 02-22 👁️ 5954
如何顺利开启打印机服务的详细步骤与技巧
监控sh365下载

如何顺利开启打印机服务的详细步骤与技巧

📅 11-05 👁️ 1142
赵丽颖和何炅的真实关系却是如此,难怪湖南卫视力捧赵丽颖三年!
刑部姬/从者任务
365bet滚球网

刑部姬/从者任务

📅 08-16 👁️ 5786
天涯明月刀太白攻略分享,太白玩法教学
beat365唯一官网

天涯明月刀太白攻略分享,太白玩法教学

📅 09-04 👁️ 2610
崩三各服最新开服日期汇总
365bet滚球网

崩三各服最新开服日期汇总

📅 02-20 👁️ 1902
学徒怎么跟师傅搞好关系,厨师学徒怎么和师傅相处
beat365唯一官网

学徒怎么跟师傅搞好关系,厨师学徒怎么和师傅相处

📅 09-18 👁️ 8613
4K电视怎么选?看懂这几点,基本不翻车!
beat365唯一官网

4K电视怎么选?看懂这几点,基本不翻车!

📅 11-04 👁️ 5592