elasticsearch字段属性值截断为32位

1.问题:ES中数据长度过长,表字段的长度 没那么长, 保存不了数据,导致报错

2.解决方案:将ES中orgId=2efc32ee89074e919afa2219e3cace53的租户数据中,personName属性值截断为32位。
  1、索引名:addressbook_user  
  2、查询条件:orgId=2efc32ee89074e919afa2219e3cace53)
  3、es操作环境:develop开发环境

3.32位

curl -XPOST "http://10.0.0.42:900/addressbook_user/wxqyh/_update_by_query" -H 'Content-Type: application/json' -d'
{
  "script": {
    "source": "ctx._source[\"personName\"]=ctx._source[\"personName\"].length()>32?ctx._source[\"personName\"].substring(0,32):ctx._source[\"personName\"];"
  },
  "query": {
    "term": {
      "orgId": "2efc32ee89074e919afa2219e3cace53"
    }
  }
}'

 4.20位

curl -XPOST "http://10.0.0.42:9200/addressbook_user/wxqyh/_update_by_query" -H 'Content-Type: application/json' -d'
{
  "script": {
    "source": "ctx._source[\"personName\"]=ctx._source[\"personName\"].length()>20?ctx._source[\"personName\"].substring(0,20):ctx._source[\"personName\"];"
  },
  "query": {
    "term": {
      "orgId": "2efc32ee89074e919afa2219e3cace53"
    }
  }
}'

 

posted @ 2020-02-18 17:07  littlevigra  阅读(597)  评论(0编辑  收藏  举报