Обновление по запросу в Elasticsearch с использованием Java
В настоящее время я использую Elasticsearch V2.3.1. Я хочу использовать следующий запрос Elasticsearch в Java.
POST /twitter/_update_by_query
{
"script": {
"inline": "ctx._source.List = [‘Item 1’,’Item 2’]”
},
"query": {
"term": {
"user": "kimchy"
}
}
}
Приведенный выше запрос ищет «пользователя» с именем «kimchy» и обновляет поле «Список» с заданными значениями. Этот запрос обновляет несколько документов одновременно. Я читал об обновлении API для Java здесьhttps://www.elastic.co/guide/en/elasticsearch/client/java-api/2.3/java-docs-update.html но не смог найти то, что искал. Обновление API для Java говорит только об обновлении одного документа за раз. Есть ли способ обновить несколько документов? Извините, если я упускаю что-то очевидное. Спасибо за ваше время.
Обновить:
Я попробовал приведенный ниже код Java:
Client client = TransportClient.builder().addPlugin(ReindexPlugin.class)
.build().addTransportAddress(new InetSocketTransportAddress(
InetAddress.getByName("127.0.0.1"), 9300));
UpdateByQueryRequestBuilder ubqrb = UpdateByQueryAction.INSTANCE
.newRequestBuilder(client);
Script script = new Script("ctx._source.List = [\"Item 1\",\"Item 2\"]");
//termQuery is not recognised by the program
BulkIndexByScrollResponse r = ubqrb.source("twitter").script(script)
.filter(termQuery("user", "kimchy")).execute().get();
Поэтому я отредактировал Java-программу, как указано выше, и termQuery не идентифицирован Java. Могу ли я знать, что я делаю здесь не так? Благодарю.