我有下一个提交的作为弹性元件的一部分:ElasticSearch - 搜索任何嵌套字段是在范围
"PayPlan" : {
"ActivePlans" : {
"plan1" : {
"startsOn" : "1",
"endsOn" : "999999"
}
},
"someOtherData" : [
NumberLong(0), 0]
},
计划名称是完全没有逻辑(可以是“plan2323a”或“plan_hh_jj”和等等)。
如何搜索所有具有ANO计划的元素,其中startsOn小于X且endsOn大于X? 谢谢大家
我无法用QUERY_STRING或通过使用查询范围,并使用接下来的格式要做到这一点“PayPlan.ActivePlans。*。startsOn”(星号不作为通配符的范围内工作
谢谢大家
这是elasticsearch查询我现在已经工作,但我想改变“计划1”到“*”,因此它会为所有子计划搜索:
{
"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"
}
}
}
]
}
}
]
}
}
]
}
}
}
}
}
你能分享你使用的是完整的查询? – Adonis
我编辑了问题,并添加了我想重写的当前工作查询,以便搜索任何子“计划”元素 – Avishay