elasticsearch 删除elasticsearch上的文档字段
我想更新一份文件。所以,每次我想更新一个对象时,我都会序列化它并将其发送给ES。想象一个POJO对象具有elasticsearch 删除elasticsearch上的文档字段,elasticsearch,elasticsearch,我想更新一份文件。所以,每次我想更新一个对象时,我都会序列化它并将其发送给ES。想象一个POJO对象具有 obj.status = 20; obj.description = "raw description"; 当我更新此对象时,它在ES上被序列化和索引为: { status: 20, description: "raw description" } 因此,我现在需要将此对象更新为: obj.status = null; 然后,我将其序列化: { descript
obj.status = 20;
obj.description = "raw description";
当我更新此对象时,它在ES上被序列化和索引为:
{
status: 20,
description: "raw description"
}
因此,我现在需要将此对象更新为:
obj.status = null;
然后,我将其序列化:
{
description: "raw description"
}
问题是,从现在起,我不希望状态
被索引。问题是ES将此对象与索引的前一个对象合并。因此,本文件的索引为:
{
status: 20,
description: "raw description"
}
所以,我需要从索引中“删除”这个字段
任何想法。
谢谢。您有两种解决方案
# Update API with Script
POST your_index/your_type/1/_update
{
"script" : "ctx._source.remove(\"status\")"
}
# Index API to reindex
PUT your_index/your_type/1
{
description: "raw description"
}
更新API触发先读后写,而索引API只触发写入。您使用的是索引API还是更新API?我使用的是更新API。