【问题标题】:Hou to use sorting with spring data elasticsearch scroll api侯使用spring data elasticsearch scroll api进行排序
【发布时间】:2019-10-24 14:06:00
【问题描述】:

看起来像一个错误。排序非常适合简单的搜索,但不适用于滚动。我尝试这样做:

FieldSortBuilder sortTimeCreated = SortBuilders.fieldSort("meta.time_created").order(SortOrder.ASC);
    SearchQuery searchQuery = new NativeSearchQueryBuilder()
                    .withSort(sortTimeCreated)
                    .withQuery(queryBuilder)
                    .withFields("meta.time_created")
                    .withPageable(PageRequest.of(0, 5/*, Sort.Direction.ASC, "meta.time_created"*/)) //was not work
                    .build();
//searchQuery.addSort(Sort.by("meta.time_created").ascending()); //was not work too(used not together with sortTimeCreated)

然后:

 Page<ElasticRecord> search = elasticsearchTemplate.queryForPage(searchQuery, ElasticRecord.class);
 Page<ElasticRecord> scroll = elasticsearchTemplate.startScroll(30000, searchQuery, ElasticRecord.class);

运行时,应用程序显示:

  1. 搜索:

|调试 | os.d.elasticsearch.core.QUERY: 937 | {"from":0,"size":5,"query":{"constant_score":{"filter":{...skipped...},"boost":1.0}},"version":true ,"_source":{"includes":["meta.time_created"],"excludes":[]},"sort":[{"meta.time_created":{"order":"asc"}}]}

  1. 滚动:

|调试 | os.d.elasticsearch.core.QUERY: 937 | {"from":0,"size":5,"query":{"constant_score":{"filter":{...skipped...},"boost":1.0}},"version":true ,"_source":{"includes":["meta.time_created"],"excludes":[]}}

Spring boot (2.1.5.RELEASE(spring-data-elasticsearch 3.1.8.RELEASE), 2.1.2.RELEASE(spring-data-elasticsearch 3.1.8.RELEASE, 3.1.5.RELEASE 3.1.0.发布)

有什么想法吗?

【问题讨论】:

    标签: java spring-boot elasticsearch spring-data spring-data-elasticsearch


    【解决方案1】:

    这是在 Issue 457 中添加的,它已于 2019 年 4 月 24 日合并到当前的 master 中。它在 Spring Data Elasticsearch 3.2.0 M4 中可用。

    【讨论】:

      猜你喜欢
      • 2019-03-15
      • 1970-01-01
      • 2021-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-11
      • 2016-07-01
      相关资源
      最近更新 更多