ES学习日记(八)-------ik安装和简易使用

一、下载和安装

https://github.com/infinilabs/analysis-ik.git

网络不好可以用这个地址,注意:ik版本要和es版本保持一致

现成地址

注意es用户操作或给es用户权限

plugins新建ik文件夹,并把压缩包解压到ik

java 复制代码
unzip elasticsearch-analysis-ik-7.4.2.zip

/bin目录启动es:

二、简易使用

1.新建索引

打开head,新建索引ik

没有安装head的同学也可以直接敲命令创建索引(分片数5,副本数1),

java 复制代码
curl -X PUT http://localhost:9200/ik -H 'Content-Type:application/json' -d'{
	"settings":{
		"number_of_shards":5
		"number_of_replicas": 1
	}
}'
2.创建索引映射

映射:可以理解为mysql里面的字段,字段有varchar、double、bigint等;

常见类型有text(可以做分词)、keyword(关键词,无法分词)double、integer

官方解释如下图:

命令

java 复制代码
curl -XPOST http://localhost:9200/ik/_mapping -H 'Content-Type:application/json' -d'{
	"properties":{
		"content":{
			"type": "text",
			"analyzer":"ik_max_word",
			"search_analyzer":"ik_smart"
		}
	}
}'

Analyzer分词配置解释:

·ik smart:粗粒度分词,比如中华人民共和国国歌,会拆分为中华人民共和国,国歌,

ik max_word:细粒度分词,比如中华人民共和国国歌,会拆分为中华人民共和国,中华人民,中华,华人人民共和国,人民,人,民,共和国,共和,和,国国,国歌,会穷尽各种可能的组合。

3.添加数据

示例数据:

java 复制代码
curl -XPOST http://localhost:9200/ik/_create/1 -H 'Content-Type:application/json' -d'{"content":"美国留给伊拉克的是个烂摊子吗"}'
curl -XPOST http://localhost:9200/ik/_create/2 -H 'Content-Type:application/json' -d'{"content":"公安部:各地校车将享最高路权"}'
curl -XPOST http://localhost:9200/ik/_create/3 -H 'Content-Type:application/json' -d'{"content":"中韩渔警冲突调查:韩警平均每天扣1艘中国渔船"}'
curl -XPOST http://localhost:9200/ik/_create/4 -H 'Content-Type:application/json' -d'{"content":"中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首"}'

执行结果:不要关注过程,过程不重要...

打开head,切换索引ik,点击搜索查看刚才插入的数据

4.查询

没有head的同学用命令:

java 复制代码
curl -XGET http://localhost:9200/ik/_search?pretty -H 'Content-Type:application/json' -d'{
	"query": {
		"term" :{
			"content" : "中国"
			}
		}
}'

高亮查询,看标签,命令应该没问题

java 复制代码
curl -XGET http://localhost:9200/ik/_search?pretty -H 'Content-Type:application/json' -d'
{
	"query" : { "match" : { "content" :"中国"}},
	"highlight" :{
		"pre_tags" :["<font color=red>" ],
		"post_tags" :["</font>"],
		"fields" :{
			"content" :{}
		}
	}
}'

写在最后

ik分词器有自己的分词规则,比如我拿刚才数据,搜"中"的结果

所以,这个分词,不是说有这个字,我就能分到,是有自己的规则的,是在添加数据时,按照规则进行分词,不是他的词,分不出来也搜不到,这点注意一下。

好了,这就是ik中文分词器,其实不需要做太多,就把分词器放到plugins里面启动,然后设置mapping,试着analyzer就可以了。

相关推荐
ly76895 小时前
倒排索引与 FST 在 Lucene 中的内存布局:segment、docValues 与词典压缩的工程取舍
elasticsearch·lucene·倒排索引·doc values·fst
奈落245 小时前
AI 编程从助手到 Agent:基于两份资料看哪些环节可以交出去,哪些必须自己攥住
大数据·人工智能
Joker可视化开发平台5 小时前
AI短剧接棒真人剧:开机量跌七成,普通人进场窗口在收窄
大数据·人工智能
数据狐(Datafox)5 小时前
淘宝图片搜索 API 落地实战:基于以图搜货搭建跨境电商选品系统
java·大数据·微服务
YangYang9YangYan5 小时前
2027 秋招|数据科学与大数据技术面试项目价值回答思路,告别纯代码描述
大数据·面试·职场和发展
2601_960356386 小时前
2027 校招质量工程师岗位拆解:数学、统计、大数据专业如何判断匹配度
大数据
Elasticsearch6 小时前
利用预计算上下文,更快速、更低成本地开展支持问题调查
elasticsearch
李日华大战鸡红7 小时前
FOC状态空间方程模型推导(学习记录)
python·学习·线性代数
KeyAction66667 小时前
AI改写战争规则,也在改写商业规则:体系对抗时代已经到来
大数据·人工智能
Qyr998 小时前
2026年全球二极管模组行业市场规模全景研判:竞争格局与发展趋势全解析
大数据·人工智能