J'ai la prochaine déposée dans le cadre d'un élément élastique:ElasticSearch - chercher un champ imbriqué qui est à portée
"PayPlan" : {
"ActivePlans" : {
"plan1" : {
"startsOn" : "1",
"endsOn" : "999999"
}
},
"someOtherData" : [
NumberLong(0), 0]
},
noms de plan sont complètement sans logique (peut être « plan2323a » ou « plan_hh_jj » et bientôt).
Comment puis-je rechercher TOUS les éléments qui ont TOUT plan que startsOn est plus petit que X et endsOn est plus grand que X? Merci à tous
Je suis incapable de le faire avec query_string ou en utilisant plage sur requête et en utilisant le format suivant « PayPlan.ActivePlans. *. StartsOn » (l'astérisque ne fonctionne pas comme un joker dans la gamme
Merci à tous
C'est la requête ElasticSearch je travaille maintenant, mais je veux changer « plan1 » dans « * » il recherchera un plan sous:
{
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"bool": {
"must": [
{
"match_all": {}
},
{
"or": {
"filters": [
{
"bool": {
"must": [
{
"range": {
"PayPlan.ActivePlans.plan1.startsOn": {
"lte": "1234"
}
}
},
{
"range": {
"PayPlan.ActivePlans.plan1.endsOn": {
"gte": "1236"
}
}
}
]
}
}
]
}
}
]
}
}
}
}
}
Pourriez-vous partager la requête complète que vous utilisez? – Adonis
J'ai édité la question et ajouté ma requête de travail actuelle que je veux réécrire donc il va chercher de tout sous 'plan' élément – Avishay