Attualmente sto utilizzando Elasticsearch V2.3.1. Voglio utilizzare la seguente query Elasticsearch in Java.Aggiornamento per query in Elasticsearch utilizzando Java
POST /twitter/_update_by_query
{
"script": {
"inline": "ctx._source.List = [‘Item 1’,’Item 2’]”
},
"query": {
"term": {
"user": "kimchy"
}
}
}
La query precedente ricerca "utente" denominato "kimchy" e aggiorna il campo "Elenco" con valori dati. Questa query aggiorna più documenti contemporaneamente. Ho letto l'API di aggiornamento per Java qui https://www.elastic.co/guide/en/elasticsearch/client/java-api/2.3/java-docs-update.html ma non sono riuscito a trovare quello che stavo cercando. L'API di aggiornamento per Java parla solo dell'aggiornamento di un singolo documento alla volta. C'è un modo per aggiornare più documenti? Scusa se mi manca qualcosa di ovvio. Grazie per il tuo tempo.
Aggiornamento:
Ho provato il seguito del codice 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();
Così ho modificato il programma Java come sopra e la termQuery non è identificato da Java. Posso sapere cosa sto facendo male qui? Grazie.
È necessario aggiungere 'import org.elasticsearch.index.query.QueryBuilders.termQuery statica;' – Val
Ciao @Val, ha funzionato ma in questo modo (usando il filtro in BulkIndexByScrollResponse) Posso aggiornare solo un documento che ha un utente chiamato "Kimchy". È possibile aggiornare più documenti utilizzando setQuery in BulkIndexByScrollResponse? o forse in altro modo? –
Ovviamente, puoi creare qualsiasi tipo di query. Quello era solo un esempio. Qual è la tua domanda? – Val