ElasticSearch如何新添加一列并将已有列内容填入

ElasticSearch不支持更改已有Field的数据类型以及Analyzer,项目中如果需要额外的检索需求,当前mapping中的analyzer不能满足时,可以通过新增加一个filed并定义额外的Analyzer来实现。

项目中name列最开始的定义如下,采用标准analyzer提供基础的查询功能,子field中定义了keyword用来排序

 "name": {
     "type": "text",
     "analyzer": "standard",
     "fields": {
         "keyword": {
             "type": "keyword"
         }
     }

现需要对name增加搜索补全的功能,经过调研,search-as-you-type 数据类型正好能满足项目需求,由于Index中已经有几千万数据(不方便重新建立new index),所以需要更改Index的mapping增加一个field来实现这个需求。

1. update index mapping,将新field的mapping信息写入。

POST /your_index_name/_mapping
{
    "pr
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值