guopengfeiheze 2021-12-30 15:37 采纳率: 42.9%
浏览 26
已结题

Java High Level REST Client 7.15 实现复杂顺序搜索

问题描述

我在使用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,正确的情况下应该返回”第二个对象“和”第三个对象"组成的列表

我不知道该如何构建查询条件才能达到上面的要求,请各位指点迷津。

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 1月7日
    • 创建了问题 12月30日

    悬赏问题

    • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
    • ¥170 如图所示配置eNSP
    • ¥20 docker里部署springboot项目,访问不到扬声器
    • ¥15 netty整合springboot之后自动重连失效
    • ¥15 悬赏!微信开发者工具报错,求帮改
    • ¥20 wireshark抓不到vlan
    • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
    • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
    • ¥15 stata安慰剂检验作图但是真实值不出现在图上
    • ¥15 c程序不知道为什么得不到结果