首页 > 解决方案 > Elasticsearch 操作现有字段值以添加新字段

问题描述

我尝试添加新字段,其值来自散列的现有字段值。所以,我想做;my_index.hashedusername(新字段)= crc32(my_index.username)(现有字段)

例如

POST  _update_by_query
{
  "query": {
    "match_all": {}
  },
  "script" : {
      "source": "ctx._source.hashedusername = crc32(ctx._source.username);"
  }
}

请给我一个想法如何做到这一点..

标签: elasticsearch

解决方案


java.util.zip.CRC32在共享的无痛 API中不可用,因此模拟该包将是不平凡的 - 甚至可能是不合理的。

我建议事先计算 CRC32 哈希,然后才将文档发送到 ES。或者,滚动浏览所有文档,计算哈希值并批量更新文档。

无痛 API 旨在执行相对简单的任务,CRC32 肯定超出了它的目的。


推荐阅读