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

本文共 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

你可能感兴趣的文章
[转载] Java并发编程:Lock
查看>>
MySQL之索引
查看>>
JAVA设计模式之单例模式
查看>>
优秀博客
查看>>
词法分析程序
查看>>
Java反射
查看>>
[ACM_模拟][ACM_数学] LA 2995 Image Is Everything [由6个视图计算立方体最大体积]
查看>>
1040 有几个PAT
查看>>
BZOJ 1412 [ZJOI2009]狼和羊的故事 | 网络流
查看>>
原型模式
查看>>
Hadoop RPC源码阅读-交互协议
查看>>
WASAPI、DirectSound/DS、WaveOut、Kernel Streaming/KS
查看>>
Perl按行分割文件
查看>>
根据现有表操作基于active record的model
查看>>
NotMapped属性特性
查看>>
Count and Say
查看>>
GridView数据导入Excel/Excel数据读入GridView
查看>>
566. Reshape the Matrix
查看>>
python数据结构与算法之搜索
查看>>
(最小点覆盖) poj 2226
查看>>