J'apprends Elasticsearch, donc je ne suis pas sûr que cette requête soit correcte. J'ai vérifié que les données sont indexées, mais je ne reçois aucun résultat. Qu'est-ce que je fais mal? Ne devrait-il pas avoir un coup sur une voiture où le nom du créateur est Steve?Interrogation d'un document imbriqué Elasticsearch
builder
.startObject()
.startObject("car")
.field("type", "nested")
.startObject("properties")
.startObject("creators")
.field("type", "nested")
.endObject()
.endObject()
.endObject()
.endObject();
{
"query": {
"bool": {
"must": [
{
"term": {
"car.creators.name": "Steve"
}
}
],
"must_not": [],
"should": []
}
},
"from": 0,
"size": 50,
"sort": [],
"facets": {}
}
Merci! J'ai dû déplacer le champ de chemin hors de l'objet de requête et insérer des "créateurs" dans le chemin et utiliser seulement creators.name dans le terme. Est-ce que ça sonne faux ou est-ce correct? – LuckyLuke
Oui, vous avez raison. Path doit être au même niveau que query et doit contenir "car.creators". J'ai mis à jour l'exemple. Vous n'êtes pas sûr de creators.name dans le terme. La voiture est-elle un type dans votre cas? – imotov
Oui, la voiture est un type? Puisque j'apprends sur Elasticsearch, cela vous dérangerait-il d'expliquer pourquoi je n'en ai pas besoin et que vous réussissez à le faire fonctionner? – LuckyLuke