在我们将数据写入ES时候需要做一些个性化的定制、数据清洗等需求,我在这里统称为“ES Data Pipeline”。比如:我们需要在添加每条数据的同时,增加时间戳这个字段添加系统时间;修改某个字段的名称;对于某个字段值进行一些加加减减等等。如何满足这些需求呢,我觉得市面上的一些总结都很乱,在此梳理下脉络结构。
更新方式
- update、update by query
在原有索引文档的基础上进行更新。 - reindex
另建索引,将原始索引的数据通过各种手段进行修改写入新的索引。
API总览
- Update API
对于文档进行部分(指定id)或者全量更新,一般结合脚本使用。
例子:
POST hamlet-raw/_update/1
{
"script" : {
"source": "ctx._source.add_some_shit= '3.1.64'",
"lang": "painless"
}
}
- Update By Query API
可以根据Query语句进行条件更新。
例子:
PUT _ingest/pipeline/add_speaker
{
"processors": [
{
"set": {
"field": "speaker",
"value": &