我無法在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