【问题标题】:can not do sorting for using startScroll method with spring-data-elasticsearch无法使用带有 spring-data-elasticsearch 的 startScroll 方法进行排序
【发布时间】:2021-09-13 22:43:45
【问题描述】:

我使用 spring-data-elasticsearch 来开发以 es 为后端的 api。我使用startScroll(long scrollTimeInMillis, SearchQuery searchQuery, Class<T> clazz) 方法从elasticsearch 中获取结果。但排序不起作用。

我在 searchQuery 中设置排序如下。

NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder().withIndices(<indices>).withTypes(<types>).withSort(<sort>)

我为&lt;sort&gt;添加了以下内容

new FieldSortBuilder("created_at").unmappedType("date").order(SortOrder.valueOf("ASC"))

我也尝试在 pageable 中进行排序,如下所示。

NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder().withIndices(<indices>).withTypes(<types>).withPageable(<pageable>)

我为&lt;pageable&gt;添加了以下内容

Sort sortRequest = Sort.by(Sort.Direction.valueOf('ASC'), "created_at")
PageRequest.of(<pageNumber>, <pageSize>, sortRequest)

两者都不起作用。 我开始认为也许滚动不支持排序。

期望结果以 created_at ASC 的顺序显示。 但现在它只是随机检索到的。

【问题讨论】:

  • 你能提供一个最小的可运行示例,其中包含必要的类和一些测试数据来重现它吗?此外,您还需要知道您使用的是哪个版本的 ES、Spring 和 spring-data-elasticsearch。

标签: spring-data-elasticsearch


【解决方案1】:

我在使用 3.2 时遇到了同样的问题,我注意到 4.0 已经解决了它

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 2019-10-24
  • 2016-07-01
  • 2017-11-30
  • 2019-03-15
  • 2015-06-10
  • 2021-04-21
  • 2020-12-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多