#java #elasticsearch
#java #elasticsearch
Вопрос:
Я пытаюсь обновить значение в моем индексе через java api, используя UpdateRequest
который принимает три аргумента.
- Указатель
- документ
- ID
Вопрос — я знаю, каково мое имя индекса, но я не уверен, какое значение следует передавать в поле document и id.
ПРИМЕР ДАННЫХ
{
"took": 2,
"timed_out": false, "_shards": { "total": 5, "successful": 5, "failed": 0 },
"hits": {
"total": 1,
"max_score": 0.94064164,
"hits": [
{
"_index": "ticketdump",
"_type": "event",
"_id": "AVefK2vFmf0chKzzBkzy",
"_score": 0.94064164,
"_source": {
"clientversion": "123465",
"queue": "test,test",
"vertical": "test",
"troubleshooting": "test",
"reason": "test",
"status": "test",
"ticketversion": "1132465",
"apuid": 1,
"golive": "2014-07-14",
"clientname": "test",
"message": "test",
"product": "test",
"clientid": 1,
"createddatetime": "2016-05-03 09:43:48",
"area": "test",
"developmentfix": "test",
"actiontaken": "test",
"categoryname": "test",
"parentcategory": "test",
"problemdef": "test",
"ticketid": 1
}
}
]
}
}
Я попытался передать _source
объект, но он выдал ошибку document missing.Может быть, я упускаю концепцию?
КОД JAVA
UpdateRequest updateRequest = new UpdateRequest(
"ticketdump",
js.getJSONObject("hits")
.getJSONArray("hits")
.getJSONObject(0)
.getJSONObject("_source")
.toString(),
"1"
).script(new Script("ctx._source.message = "bhavik""));
client.update(updateRequest).get();
Ответ №1:
На самом деле, ваш UpdateRequest принимает 3 параметра
- Указатель
- Тип
- ID
По следующим данным вы можете видеть, что:
- Index = ticketdump
- Тип = событие
- Id = AVefK2vFmf0chKzzBkzy
Комментарии:
1. это сработало. Спасибо за вашу помощь и разъяснения.
2. после этого ответа что-то изменилось в запросе JSON? Возможно, у меня похожая проблема, но я не понимаю, в чем проблема. Небольшая помощь будет оценена. Спасибо!