elasticsearch - Elasticsearch 操作现有字段值以添加新字段
问题描述
我尝试添加新字段,其值来自散列的现有字段值。所以,我想做;my_index.hashedusername(新字段)= crc32(my_index.username)(现有字段)
例如
POST _update_by_query
{
"query": {
"match_all": {}
},
"script" : {
"source": "ctx._source.hashedusername = crc32(ctx._source.username);"
}
}
请给我一个想法如何做到这一点..
解决方案
java.util.zip.CRC32
在共享的无痛 API中不可用,因此模拟该包将是不平凡的 - 甚至可能是不合理的。
我建议事先计算 CRC32 哈希,然后才将文档发送到 ES。或者,滚动浏览所有文档,计算哈希值并批量更新文档。
无痛 API 旨在执行相对简单的任务,CRC32 肯定超出了它的目的。
推荐阅读
- javascript - 无法在 highchart 中显示列的数据标签,显示格式不正确
- reactjs - 在 React 的组件树中依赖 Context.Provider 的存在是否是一种反模式?
- c# - d:DataContext=d:DesignInstance 不起作用,甚至是普通的 UWP 项目
- google-bigquery - 使用浮动数据点计算大查询中的余数
- c# - SqlCommandBuilder 生成不正确的更新语句
- java - 在迭代列表时从列表中删除项目
- node.js - 过去 30 天内每天售出的订单
- php - Laravel Eloquent 使用过滤器获取嵌套子级
- c - 如何在另一个链表中获取链表的奇数索引节点?我不想使用双指针
- sql - SQL 错误 [8152] [22001]:插入时字符串或二进制数据将被截断