微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

elasticsearch 更换索引中字段的分词规则

以下操作均在 kibana 上进行

elasticsearch 版本:7.6.2

kibana 版本:7.6.2

获取当前索引的 mapping 信息

GET /索引名称/_mapping
{
  "索引名称" : {
    "mappings" : {
      "properties" : {
        "content" : {
          "type" : "text"
        },

这个索引里面有一个字段,“content”,该字段的类型是 “text”,分词规则没有指定,使用的是认分词规则,例如:天空很蓝,会被分词为:天、空、很、蓝,这四个字进行匹配搜索

ps:旧索引的配置信息要留存,后面需要在原配置上进行更改!!!

更换当前索引内字段的类型

  1. 删除当前索引
DELETE /索引名称

ps:删除时,请及时做好数据备份!!!

  1. 创建新索引
PUT /索引名称

ps:省略索引内字段初始化步骤。这里创建的索引对应的分词规则还是认的。创建索引后,不要往索引里面添加数据,否则是无法更改索引字段数据的!!!

  1. 更改索引内字段分词规则
PUT /索引名称/_mappings
{
    "properties": {
        "content": {
            "type": "text"
            # 将分词规则修改为 ik 细粒度分词
            , "analyzer": "ik_max_word"
        }
        # 省略掉的配置...
        # 这里的配置都是通过原来的索引获取到的,只是在原来的基础上面调整了分词规则
    }
}
  1. 测试分词规则是否生效
GET /索引名称/_search
{
  "size": 0, 
  "query": {
    "match": {
      "content": {
        "query": "天空很蓝"
      }
    }
  }, 
  "track_total_hits": 2147483647
  , "profile": "true" # 该属性,可以获取到当前搜索条件对应的分词信息
}

执行完后的分词结果:天空、很、蓝(content:天空 content:很 content:蓝),成功组词!!!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐