Всем привет! Есть "таблица" в ES, которая имеет вид
{"fields": [{"id":[{"innerField":[value]}]}]}}
или
object("fields", array( object( "ids", array( object( "innerFields", array( value) ) ) ) ) )
или
IndexResponse response = client
.prepareIndex(index, type, id)
.setSource(
jsonBuilder()
.startObject()
.startArray("fields")
.startObject()
.startArray(filmId).
startObject().array("ids",val).endObject()
.endArray()
.endObject()
.endArray()
.endObject())
.execute().actionGet();
Как можно сделать запрос Update в скрипте на Groovy,
если, нужно добавить в массив ids запись и внутри него уже добавить запись в массив innerFields
Нужно чтобы записи не дублировались.
Вот дошел пока до этого, но выдает ексепшены
if (ctx._source.fields.contains(\""+id1+"\")) {
if(!ctx._source.fields[\""+id1+"\"].innerFields.contains(\""+val1+"\")){
ctx._source.fields[\""+id1+"\"].innerFields = [\""+val1+"\"]
};
} else {
ctx._source.fields += \""+id1+"\"
ctx._source.fields[\""+id1+"\"].innerFields = [\""+val1+"\"]
}
Сори, тут с разметкой проблемы
Буду оч благодарен, если подскажете куда копать или как изменить код!