首页 > 解决方案 > 如何使用 Spring Framework 按数组中的最新和最早日期对 Elasticseach 中的值进行排序?

问题描述

我有 Spring Boot 应用程序,我正在使用spring-boot-starter-data-elasticsearch.

我有嵌套对象与对象列表(包含日期列表),我必须按数组中 startDate 的最早值和 endDate 的最新值进行排序。我没有找到任何例子。我怎么能实现呢?

层次结构如下所示:

mainObject.dateRangeList.[{startDate, endDate}, ...]

dateRangeList 被注释为

@Field(type = FieldType.Nested, name = "date-range-list")
 private List<DateRange> dateRangeList;

开始和结束日期被注释为

@Field(name = "start",
      type = FieldType.Date,
      format = DateFormat.date,
      pattern = "yyyy-MM-dd")
 private LocalDate start;

文件示例

    {
        "id": "qwe",
        "a": "ABC",
        "c": "qwe",
        "b": "qwe",
        "someFields"...
        "schedule": {
            "z": "qwe",
            "x": false,
            "date-range-list": [
                {
                    "start": "2020-11-01",
                    "end": "2020-12-01"
                }
            ],
            "y": []
        },
        "somefields"...
    }

嵌套对象

标签: javaarraysspring-bootsortingelasticsearch

解决方案


推荐阅读