Я использую обновление по плагину запроса (https://github.com/yakaz/elasticsearch-action-updatebyquery/) для обновления документов по запросу. В моем случае, есть вложенное поле в документе, отображение что-то вроде этого:Возможно ли обновить вложенное поле по запросу?
"mappings": {
"mytype": {
"properties": {
"Myfield1": {
"type": "nested",
"properties": {
"field1": {
"type": "string"
},
"field2": {
"type": "long"
}
}
},
"Title": {
"type": "string"
}
}
}
}
Тогда я хочу, чтобы обновить вложенное поле Myfield1
по запросу с следующей просьбой:
Но, к сожалению, это делает не работа.
{
"query": {
"match": {
"Title": "elasticsearch"
}
},
"script": "ctx._source.Myfield1 = [{'nestfield1':'foo blabla...','nestfield2':100},{'nestfield1':'abc...','nestfield2':200}]"
}
Выполняет ли обновление по запросу поддержку вложенного объекта?
BTW: любые другие способы обновления документа по запросу?
Является ли обновление по запросу плагином единственным выбором?
гм, я был абсолютно уверен, что вы могли бы обновить документ без каких-либо плагинов, просто индексировать документ с таким же идентификатором - он будет заменен – Mysterion
Да, я могу частичное обновление документ по идентификатору. Но тогда мне нужно сначала узнать точный идентификатор каждого документа, который будет обновляться. Поэтому я предпочитаю «обновлять по запросу», чтобы я мог обновить doc по запросу в любом поле. – Youxu