Я хотел бы добавить набор пар значений ключа из HashMap в тело запроса функции UpdateRequest в Elasti c API-интерфейс поиска REST высокого уровня Java.
Я могу успешно l oop через HashMap и вытащить ключи и значения. Как я могу добавить их в конструктор чистым и эффективным способом? Код
обновлен: новый Date (), животное: крокодил
- это заполнитель того, чего я хотел бы достичь с нашими реальными данными из HashMap.
Вот документация, которую я использовал от Elasti c Поиск. Мы используем версию 7.5.2.
https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/java-rest-high-document-update.html
public void updateDocument(@PathParam("index_name") String index_name,
@PathParam("document_id") String document_id, HashMap<String, String> columnValues) throws IOException {
RestHighLevelClient client = createHighLevelRestClient();
Set<String> keys = columnValues.keySet();
for (String key : keys) {
System.out.println(key);
System.out.println(columnValues.get(key));
}
XContentBuilder builder = XContentFactory.jsonBuilder();
builder.startObject();
{
builder.timeField("updated", new Date());
builder.field("animal", "crocodile");
}
builder.endObject();
UpdateRequest request = new UpdateRequest(
index_name, document_id);
request.docAsUpsert(true).doc(builder);
UpdateResponse updateResponse = client.update(
request, RequestOptions.DEFAULT);
System.out.println(updateResponse);
client.close();