elasticsearch 8 修改分词器并数据迁移

这篇具有很好参考价值的文章主要介绍了elasticsearch 8 修改分词器并数据迁移。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 安装中文索引

下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases

注意:版本要和ES版本对应
elasticsearch 8 修改分词器并数据迁移
解压后放入plugins文件中
elasticsearch 8 修改分词器并数据迁移
然后重启服务:docker-compose restart elasticsearch,大概需要1分钟

2. 数据迁移

当索引存在时不能修改已有索引分词器,会出现错误:

{
  "error" : {
    "root_cause" : [
      {
        "type" : "illegal_argument_exception",
        "reason" : "Mapper for [content] conflicts with existing mapper:\n\tCannot update parameter [analyzer] from [default] to [ik_max_word]"
      }
    ],
    "type" : "illegal_argument_exception",
    "reason" : "Mapper for [content] conflicts with existing mapper:\n\tCannot update parameter [analyzer] from [default] to [ik_max_word]"
  },
  "status" : 400
}

因此需要进行一下步骤:

  1. 使用新的mappings创建新索引
  2. 使用reindex将数据从旧索引复制到新索引
  3. 删除旧的索引,并将设置新索引的别名

使用mappings新建索引

PUT /test_new
{
  "mappings": {
    "properties": {
      "content": {
        "type": "text",
        "analyzer": "ik_max_word",
        "search_analyzer": "ik_smart",
        "fields": {
          "keyword": {
            "type": "keyword",
            "ignore_above": 256
          }
        }
      }
    }
  }
}

使用reindex将数据从旧索引复制到新索引

POST /_reindex
{
  "source" : {
    "index" : "test"
  },
  "dest" : {
    "index" : "test_new",
    "version_type" : "external"
  }
}

删除旧的索引并设置别名

POST /_aliases
{
    "actions" : [
      {
        "add" : {
          "index" : "test_new",
          "alias" : "test"
        }
      },
    {
        "remove_index" : {
          "index": "test"
      }
    }
  ]
}

3. 总结

重新索引耗时比较长,最好在新建索引时设计好mappings中的分词器,万不得已再使用reindex文章来源地址https://www.toymoban.com/news/detail-468959.html

到了这里,关于elasticsearch 8 修改分词器并数据迁移的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • elasticsearch安装中文分词IK启动异常:java.nio.file.AccessDeniedException

    启动错误信息如下: 问题原因:plugins中添加的ik目录没有权限; 解决方案:进入elasticsearch容器对应plugins目录下,进行 chmod 777 ik 授权即可。

    2024年02月03日
    浏览(12)
  • windows环境基于Elasticsearch8.4.0的IK中文分词器的安装、部署、使用

    windows环境基于Elasticsearch8.4.0的IK中文分词器的安装、部署、使用

    目录 问题现象: 解决方法: 1、下载IK中文分词器 2、部署 3、使用 前言(选看)       最近在重温Elasticsearch,看来一下官网,都出到8.4.3版本了。想当初学的时候用的还是5.6.8,版本更新了很多意味着有大变动。           windows环境基于Elasticsearch8.4.0的IK中文分词器的安

    2024年02月13日
    浏览(17)
  • Linux下安装ElasticSearch-analysis-ik中文分词器插件,以及可能出现的异常处理

    Linux下安装ElasticSearch-analysis-ik中文分词器插件,以及可能出现的异常处理

            注意:安装可以采用在线方式、离线方式,但是不建议在线安装,速度超级慢,本文只介绍离线安装方式                 下载地址:https://github.com/medcl/elasticsearch-analysis-ik                 切记选择版本需要跟ElasticSearch保持一致,否则可能会出现一些未知的异

    2024年02月07日
    浏览(20)
  • Elasticsearch7.15.2 安装ik中文分词器后启动ES服务报错的解决办法

    Elasticsearch7.15.2 安装ik中文分词器后启动ES服务报错的解决办法

    下载elasticsearch ik中文分词器,在elasticsearch安装目录下的plugins文件夹下创建名为ik的文件夹,将下载的ik中文分词器解压缩到新建的ik文件夹下,再次运行 ./bin/elasticsearch启动ES服务时出现以下错误: Exception in thread \\\"main\\\" java.nio.file.NotDirectoryException: /Users/amelia/work/elasticsearch-7.1

    2024年02月12日
    浏览(14)
  • 【Elasticsearch学习笔记二】es的Mapping字段映射、Mapping字段常用类型、Mapping映射的创建、查看和更新、es数据迁移、ik分词器

    【Elasticsearch学习笔记二】es的Mapping字段映射、Mapping字段常用类型、Mapping映射的创建、查看和更新、es数据迁移、ik分词器

    目录 1、Mapping字段映射概述 2、Mapping字段常用类型 3、映射中对时间类型详解 1)采取自动映射器来映射 2)手工映射提前指定日期类型 4、ES的keyword的属性ignore_above 5、Mapping映射的查看和创建 1)查看mapping信息:GET 索引名/_mapping 2)创建映射:PUT /索引名 3) 查看所有索引映

    2024年01月20日
    浏览(13)
  • elasticsearch 安装 IK 中文分词器插件提示找不到文件的异常(Exception in thread “main“ java.nio.file.NoSuchFileException)

    elasticsearch 安装 IK 中文分词器插件提示找不到文件的异常(Exception in thread “main“ java.nio.file.NoSuchFileException)

    错误截图 在命令行窗口,执行如下命令安装 IK 中文分词器 失败。 错误日志 1、自己到github下载对应版本的ik中文分词器 上面命令中两个插件版本号应该和 Elasticsearch 的版本保持一致,我现在用的是 7.14.1 版本。 首先版本和命令是对得上的。 命令行窗口通过命令下载失败的话

    2024年04月11日
    浏览(17)
  • 【ElasticSearch】中文分词器

    【ElasticSearch】中文分词器

    ES默认的analyzer(分词器),对英文单词比较友好,对中文分词效果不好。不过ES支持安装分词插件,增加新的分词器。 1、如何指定analyzer? 默认的分词器不满足需要,可以在定义索引映射的时候,指定text字段的分词器 例子: 只要在定义text字段的时候,增加一个analyzer配置

    2024年02月11日
    浏览(10)
  • Elasticsearch 中文分词器

    Elasticsearch 中文分词器

    我们在ES中最常用的中文分词器就是IK分词器,其项目地址为:https://github.com/medcl/elasticsearch-analysis-ik 下载地址: https://github.com/medcl/elasticsearch-analysis-ik/releases 下载时注意和es的版本对应,我们es版本为:8.6.2。所以我们下载 elasticsearch-analysis-ik-8.6.2.zip 解压包内容如下: 在ES

    2024年02月09日
    浏览(7)
  • ElasticSearch中文分词和模糊查询

    ElasticSearch中文分词和模糊查询

            ElasticSearch是一个一个分布式的实时文档存储,每一个字段都可以被索引与搜索,并且能支持PB级别的结构化或者非结构化数据。早期我们应用的全局搜索是简单的SQL模糊查询,为了分担数据库压力所以用了ES,选择他的原因除了以上几点外,还有其提供的API方式简单

    2024年02月03日
    浏览(13)
  • Elasticsearch之ik中文分词篇

    es在7.3版本已经支持中文分词,由于中文分词只能支持到单个字进行分词,不够灵活与适配我们平常使用习惯,所以有很多对应中文分词出现,最近使用的是ik分词器,就说说它吧。 安装可以百度下有很多教程,需要注意的是ik分词器的版本要跟es版本对应上,避免出现不必要

    2024年02月02日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包