博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
elasticsearch 索引,更新,增量更新,不停机修改升级 ,简单使用
阅读量:5988 次
发布时间:2019-06-20

本文共 2355 字,大约阅读时间需要 7 分钟。

举例: 根据商品名称搜索商品

  1. 创建索引 product_v1 为什么要带v1呢,后面方便升级

    #新增索引put product_v1?pretty#查看一下get _cat/indices?v
  2. 定义map,简单设置,只定义idname,还有updatetime

    #设置mapPOST product_v1/_mapping/doc{  "properties": {    "name":{        "type": "text",        "analyzer": "ik_max_word",        "search_analyzer": "ik_max_word"    },    "id":{        "type": "long"    },    "updatetime": {        "type": "date",        "format": "yyyy-MM-dd HH:mm:ss"    }  }}#查看mapGET /product_v1/_mapping/
  3. 添加别名,将product_v1设置为product,后面就可以针对别名操作。设置别名最大的好处,是后期变更map时很方便,开发时连接product即可

    POST /_aliases{    "actions" : [        { "add" : { "index" : "product_v1",  "alias" : "product" } }    ]}
  4. 添加一些索引随便添加,日期就不写了

    PUT product/doc/1?pretty{ "name":"网络红外半球摄像机"}PUT product/doc/2?pretty{ "name":"网络高清硬盘录像机"}PUT product/doc/3?pretty{ "name":"网络红外高清中速球机"}
  5. 搜索测试数据

    GET  product/_search{    "query": {    "match": {      "name": "网络"    }  }}
  6. 升级变更map, 比如name变更为productName。 添加新字段typeName

    #1.建立新索引put product_v2?pretty#2.设置新mapPOST product_v2/_mapping/doc{  "properties": {    "productName":{        "type": "text",        "analyzer": "ik_max_word",        "search_analyzer": "ik_max_word"    },    "typeName":{        "type": "text",        "analyzer": "ik_max_word",        "search_analyzer": "ik_max_word"    }    ...    ...  }}#3.得新添加索引到`product_v2`,PUT product_v2/doc/1?pretty{ "productName":"网络红外半球摄像机",  ...  ...}#4.设置别名指向新索引,原索引自己决定是否删除POST /_aliases{    "actions" : [        { "add" : { "index" : "product_v2",  "alias" : "product" } }    ]}#或者同时删除掉原索引POST /_aliases{    "actions" : [        { "remove" : { "index" : "product_v1",  "alias" : "product" } },        { "add" : { "index" : "product_v2",  "alias" : "product" } }    ]}#或者单独删除都可以DELETE   product_v1
  7. 升级变更map, 比如字段类型需要变更,如给typeName添加一个keyword的类型

    #1.新建索引put product_v3?pretty#2.设置新`map`POST product_v3/_mapping/doc{  "properties": {    "typeName":{        "type": "text",        "analyzer": "ik_max_word",        "search_analyzer": "ik_max_word",        "fields": {            "keyword": {                "type": "keyword"            }        }    }    ...    ...  }}#3.使用`reindex`得做索引post _reindex{  "source": {    "index": "product"  },  "dest": {    "index": "product_v2"  }}#4.将别名切到新索引,同上POST /_aliases{    "actions" : [        { "add" : { "index" : "product_v2",  "alias" : "product" } }    ]}...

转载于:https://www.cnblogs.com/DonneZhang/p/es.html

你可能感兴趣的文章
UNIX哲学
查看>>
Git 常见命令
查看>>
聚集索引和非聚集索引
查看>>
du命令
查看>>
关闭eclipse自动弹出的帮助
查看>>
Head First C 第九章 进程与系统调用 出错处理
查看>>
RestyGWT简介
查看>>
Node.js项目配置文件的设计
查看>>
#hihoCoder: 1501 : 风格不统一如何写程序
查看>>
nginx最大连接压测和调优
查看>>
yii2表单模型样式修改(自定义)
查看>>
Java 面试题
查看>>
DedeCMS Error: (PHP 5.3 and above) Please set r...
查看>>
发邮件mailto用法
查看>>
一小时包教会 —— webpack 入门指南
查看>>
Vue.js——60分钟组件快速入门(上篇)
查看>>
iOS Code Review 1.0
查看>>
格式化文档生成的利器-- Markdown
查看>>
mysql 5.7.11 zip 安装
查看>>
Spring Cloud Config Client配置说明
查看>>