问题描述
我在使用elasticsearch Java High Level REST Client 7.15 实现一个搜索的时候遇到了问题
有一个业务场景如下:
在es的一个index中的对象结构如下(示例共三个对象):
[{
"name": "第一个对象",
"age": "....",
"citys": [{
"cityCode": "1234",
"order": 1
},
{
"cityCode": "233323",
"order": 2
},
{
"cityCode": "32223",
"order": 3
}.....]
},
{
"name": "第二个对象",
"age": "....",
"citys": [{
"cityCode": "32223",
"order": 1
},
{
"cityCode": "233323",
"order": 2
},
{
"cityCode": "78787",
"order": 3
},
{
"cityCode": "1234",
"order": 4
}.....]
},
{
"name": "第三个对象",
"age": "....",
"citys": [{
"cityCode": "32223",
"order": 1
},
{
"cityCode": "233323",
"order": 2
},
{
"cityCode": "1234",
"order": 3
},
{
"cityCode": "78787",
"order": 4
}.....]
}]
需求如下
查询条件为俩cityCode,,分别为 32223, 1234,我想达到如下搜索效果
1、cityCode包含32223 , 1234的对象才能被查出来
2、查询的结果中每个对象的cityCode为32223的order必须小于cityCode为1234的order
正确结果示例
传入32223, 1234,正确的情况下应该返回”第二个对象“和”第三个对象"组成的列表
我不知道该如何构建查询条件才能达到上面的要求,请各位指点迷津。