J'utilise elasticsearch 2.3.4, mais la syntaxe ne semble pas avoir changé dans 5.x.Elasticsearch Multi Travailler via curl, mais aucun résultat n'est renvoyé via Java API
La boucle multi-boucles fonctionne très bien. Voici ce que ma boucle ressemble:
curl 'localhost:9200/_mget' -d '{
"docs" : [
{
"_index" : "logs-2017-04-30",
"_id" : "e72927c2-751c-4b33-86de-44a494abf78f"
}
]
}'
Et quand je veux tirer le champ de « message » cette réponse, j'utilise cette demande:
curl 'localhost:9200/_mget' -d '{
"docs" : [
{
"_index" : "logs-2017-04-30",
"_id" : "e72927c2-751c-4b33-86de-44a494abf78f",
"fields" : ["message"]
}
]
}'
Les deux requêtes ci-dessus renvoient le journal et l'information que je cherche.
Mais lorsque je tente de traduire en Java comme ceci:
MultiGetRequestBuilder request = client.prepareMultiGet();
request.add("logs-2017-04-30", null, "e72927c2-751c-4b33-86de-44a494abf78f");
MultiGetResponse mGetResponse = request.get();
for (MultiGetItemResponse itemResponse : mGetResponse.getResponses()) {
GetResponse response = itemResponse.getResponse();
logger.debug("Outputing object: " + ToStringBuilder.reflectionToString(response));
}
Je semble être de récupérer des objets nuls en arrière. Lorsque je tente de saisir le champ de message sur l'objet GetResponse null prospectifs, rien est là:
GetField field = response.getField("message");
< --- retourne null
Qu'est-ce que je fais mal? faire un appel de repos à elasticsearch prouve que le journal existe, mais mon appel Java est erroné.
Pourquoi vous donnez 'type' comme' null' dans votre demande de java dans la ligne 'request.add ("logs-30/04/2017", null, « e72927c2-751c-4b33-86de -44a494abf78f ")'? Vous devriez fournir le type ou '_all'! – avr
@avr L'API permet que ce soit null, https://github.com/elastic/elasticsearch/blob/master/core/src/main/java/org/elasticsearch/action/get/MultiGetRequestBuilder.java#L47, mais je suis retourné et ajouté le type à la commande curl et la commande Java MultiGetRequestBuilder.add et vu le même comportement. Il a travaillé sur l'appel curl et a échoué sur l'appel Java. – Shadoninja