上文 Elasticsearch(ES) 下载添加IK分词器 带大家 下载 并使用了 IK 分词器
我们先启动 ES 服务
然后 我们来说 IK分词器 怎么用
设置分词器 我们还是要发put请求 创建索引时 通过参数设置
这里 我们put请求 类型要换成 json的
我们先加一个这样的模板
{
"mappings": {
"properties": {
}
}
}
我们数据结构的配置 都是在 mappings中的
properties 是指 装在的所有属性描述
然后 我们来写第一个属性 id
{
"mappings": {
"properties": {
"id": {
"type": "keyword"
}
}
}
}
这个id的type 并不是java的类型 而是 ES的类型 keyword 表示 可以根据id进行查询
如果 你不希望id参与查询
我们下面加个 index 给false 就好了
但 我们这明显是要参与查询的 将index 属性去掉
然后 我们就可以设置它的其他属性了
"name": {
"type": "text",
"analyzer":"ik_max_word"
},
"describe": {
"type": "text",
"analyzer":"ik_max_word"
},
"type": {
"type": " keyword"
}
这里 我们设置 name和describe type类型都是 text 表示这是一段文本信息
然后 analyzer 表示分词器 ik分词器的地址就是 ik_max_word
然后 又来了个type字段
最后 还有一个东西 要设置
例如 我们输入一个 springboot 那么 系统就蒙了 你是要在 name还是analyzer 中去找这个关键字?
但是 我们希望的是 只要有任何一个包含 就能查出来
我们将代码改成这样
{
"mappings": {
"properties": {
"id": {
"type": "keyword"
},
"name": {
"type": "text",
"analyzer":"ik_max_word",
"copy_to": "all"
},
"describe": {
"type": "text",
"analyzer":"ik_max_word",
"copy_to": "all"
},
"type": {
"type": "keyword"
},
"all": {
"type": "text",
"analyzer":"ik_max_word"
}
}
}
}
加了一个字段 all type给text 文本信息 analyzer设置ik分词器 ik_max_word
但我们的name和describe 都设置了 copy_to 指向了 字段 all 意思是 它们拿到的数据 都会往all字段中备份一个 但是 copy_to给的数据确实是不真实存在的,主要是用于查询的
然后 我们点击执行
注意 如果你已经有这个 books 索引了 那么 要先删了 再执行 索引不能重复
OK 添加成功 我们get一下看看有没有效果
我们可以看到 mappings中的内容就是我们设置的了
原文地址:https://blog.csdn.net/weixin_45966674/article/details/136005160
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_65743.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!