Elasticsearch(ES) 创建带有分词器规则的索引

上文 Elasticsearch(ES) 下载添加IK分词器 带大家 下载 并使用了 IK 分词器
我们先启动 ES 服务
Elasticsearch(ES) 创建带有分词器规则的索引_第1张图片
然后 我们来说 IK分词器 怎么用

设置分词器 我们还是要发put请求 创建索引时 通过参数设置
这里 我们put请求 类型要换成 json的
Elasticsearch(ES) 创建带有分词器规则的索引_第2张图片
我们先加一个这样的模板

{
    "mappings": {
        "properties": {
            
        }
    }
}

我们数据结构的配置 都是在 mappings中的
properties 是指 装在的所有属性描述

然后 我们来写第一个属性 id

{
    "mappings": {
        "properties": {
            "id": {
                "type": "keyword"
            }
        }
    }
}

这个id的type 并不是java的类型 而是 ES的类型 keyword 表示 可以根据id进行查询
Elasticsearch(ES) 创建带有分词器规则的索引_第3张图片
如果 你不希望id参与查询
我们下面加个 index 给false 就好了
Elasticsearch(ES) 创建带有分词器规则的索引_第4张图片
但 我们这明显是要参与查询的 将index 属性去掉
Elasticsearch(ES) 创建带有分词器规则的索引_第5张图片
然后 我们就可以设置它的其他属性了

"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字段
Elasticsearch(ES) 创建带有分词器规则的索引_第6张图片
最后 还有一个东西 要设置
例如 我们输入一个 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给的数据确实是不真实存在的,主要是用于查询的
Elasticsearch(ES) 创建带有分词器规则的索引_第7张图片
然后 我们点击执行
注意 如果你已经有这个 books 索引了 那么 要先删了 再执行 索引不能重复
Elasticsearch(ES) 创建带有分词器规则的索引_第8张图片
OK 添加成功 我们get一下看看有没有效果

我们可以看到 mappings中的内容就是我们设置的了
Elasticsearch(ES) 创建带有分词器规则的索引_第9张图片

你可能感兴趣的:(elasticsearch,大数据,搜索引擎)