一、概述

环境:ElasticSearch版本5.6.3,SpringBoot 2.0.2.RELEASE,索引myIndex

问题描述:使用@Field注解给实体类指定ik分词解析器(ik_smart/ik_max_word),测试分词功能,发现并不能达到预期的效果,查看mapping,并没有自动生成ik配置。

二、解决方案

由于ElasticSearch索引一旦建立,就无法动态修改其字段的映射类型,为了不影响线上的访问,需要无缝切换到新的索引上。使用 ElasticSearch 提供的 reindex api 来迁移数据,创建新的索引

1. 创建新的索引

PUT /myIndex_v2

2. 设置新索引的mapping

PUT /myIndex_v2/_mapping/myIndex_v2

{
  "properties": {
    "title": {
      "type": "text",
      "analyzer": "ik_smart",
      "search_analyzer": "ik_smart",
      "fields": {
        "keyword": {
        "type": "keyword",
        "ignore_above": 256
        }
      }
    },
    "content": {
      "type": "text",
      "fields": {
        "keyword": {
        "type": "keyword",
        "ignore_above": 256
        }
      }
    },
    "createTime": {
      "type": "long"
    }
  }
}

  

3. 同步数据

使用 reindex 将原来的索引重建到新的索引上

POST /_reindex

{
"source": {
"index": "myIndex"
},
"dest": {
"index": "myIndex_v2"
}
}

  

4. 查看数据是否已同步到新的索引上

GET /myIndex_v2/_search

5. 使用别名,切换索引(同时删除原索引myIndex)

POST /_aliases

{
"actions": [
{
"add": {
"index": "myIndex_v2",
"alias": "myIndex"
}
},
{
"remove_index": {
"index": "myIndex"
}
}
]
}

  大功告成,现在可以同时使用myIndex和myIndex_v2搜索数据

参考:https://javasgl.github.io/elastic-search-reindex/

   https://javasgl.github.io/use-alias-migrate-index/

最新文章

  1. 【.net 深呼吸】细说CodeDom(3):命名空间
  2. BizTalk动手实验(十七)ODBC适配器使用
  3. DOM的基本属性
  4. jQuery MiniUI开发系列之:安装部署
  5. Ubuntu 下安装 Oracle JDK
  6. Upgrading to Java 8——第四章 The Stream API
  7. SSIS ->> Parameter
  8. Asp.net原理(第一篇)
  9. Yslow-23条规则编辑
  10. ICE第二篇--一个"hello world"的简单例子
  11. 在 Windows 8、Windows 10 桌面模式下的 .NET Framework 程序中,引用 Windows.Runtime 的 API。
  12. 使用golang的slice来模拟栈
  13. JMeter登录总是提示用户名不能为空的解决
  14. linux screen 多任务后台执行
  15. python-day91--JS实现的ajax
  16. C++标准库头文件名字和C语言头文件名字的区别
  17. Docker Compose 配置文件详解
  18. Html中Select的增删改查排序,和jQuery中的常用功能
  19. Vagrant (1) —— 基本安装与配置(上)
  20. ALGO-3_蓝桥杯_算法训练_K好数(DP)

热门文章

  1. ubuntu16.04 安装 caffe cuda 相关流程
  2. gcc中C++一个特别的头文件
  3. EFK收集Kubernetes应用日志
  4. HTML5元素1
  5. hiho 1227 找到一个恰好包含n个点的圆 (2015北京网赛 A题)
  6. Dubbo中多注册中心问题与服务分组
  7. centos 安装php7、pecl 、swoole、redis拓展
  8. 使开发更便捷——Visual Studio 使用技巧——快捷键
  9. Expression表达式树 案例
  10. 虚拟多Mac地址工具Multimac