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日
    浏览(62)
  • windows环境基于Elasticsearch8.4.0的IK中文分词器的安装、部署、使用

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

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

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

    2024年02月07日
    浏览(62)
  • 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日
    浏览(56)
  • 【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日
    浏览(60)
  • elasticsearch 安装 IK 中文分词器插件提示找不到文件的异常(Exception in thread “main“ java.nio.file.NoSuchFileException)

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

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

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

    2024年02月11日
    浏览(83)
  • 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日
    浏览(43)
  • ElasticSearch中文分词和模糊查询

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

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

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

    2024年02月02日
    浏览(62)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包