我无法在Elastic manual on nested objects中找到有关如何使用Kibana Sense中的RESTful命令修改文档的字段和嵌套对象的示例。我正在寻找类似Solrs atomic updates的东西,它允许更新文档的特定字段。在弹性搜索中删除/添加嵌套对象
Kibana Sense中的RESTful命令如何完成此操作?我能找到的手册中唯一的相关信息是Partial Updates to Documents,但我不知道如何应用这个用例。
例如,直接从Elastic docs:
PUT my_index
{
"mappings": {
"my_type": {
"properties": {
"user": {
"type": "nested"
}
}
}
}
}
PUT my_index/my_type/1
{
"group" : "fans",
"user" : [
{
"first" : "John",
"last" : "Smith"
},
{
"first" : "Alice",
"last" : "White"
}
]
}
我怎样才能删除嵌套对象的条目,使文件“1”的模样:
{
"group" : "fans",
"user" : [
{
"first" : "John",
"last" : "Smith"
}
]
}
我怎样才能在嵌套对象中添加一个条目,以便文档“1”看起来像:
{
"group" : "fans",
"user" : [
{
"first" : "John",
"last" : "Smith"
},
{
"first" : "Alice",
"last" : "White"
},
{
"first" : "Peter",
"last" : "Parker"
}
]
}
我想在嵌套的“用户”对象中添加或删除,而不是重新索引一个新的(可能很大的)文档。我正在寻找类似于Solrs“原子更新”的东西,我更新了这个问题来澄清这一点。 – tkja
您想要的是elasticsearch无法实现的。文件是不可变的。我调整了我的答案,包括一个关于这个的说明。您可能希望取消嵌套文档并通过某些应用程序逻辑链接它们。 – Phil
那么https://www.elastic.co/guide/en/elasticsearch/guide/master/partial-updates.html#_updates_and_conflicts(部分更新文档)呢?这可以用来完成一个RESTful命令来直接更新,如我的例子? – tkja