spring-data-elasticsearch - 无法使用带有 spring-data-elasticsearch 的 startScroll 方法进行排序
问题描述
我使用 spring-data-elasticsearch 来开发以 es 为后端的 api。我正在使用startScroll(long scrollTimeInMillis, SearchQuery searchQuery, Class<T> clazz)
从弹性搜索中获取结果的方法。但排序不起作用。
我在 searchQuery 中设置排序如下。
NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder().withIndices(<indices>).withTypes(<types>).withSort(<sort>)
在我添加了以下内容<sort>
new FieldSortBuilder("created_at").unmappedType("date").order(SortOrder.valueOf("ASC"))
我还尝试将排序放入可分页,如下所示。
NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder().withIndices(<indices>).withTypes(<types>).withPageable(<pageable>)
在我添加了以下内容<pageable>
Sort sortRequest = Sort.by(Sort.Direction.valueOf('ASC'), "created_at")
PageRequest.of(<pageNumber>, <pageSize>, sortRequest)
两者都不起作用。我开始认为也许滚动不支持排序。
预期的结果是按 created_at ASC 的顺序显示。但现在它只是随机检索。
解决方案
我在使用 3.2 时遇到了同样的问题,我注意到 4.0 已经解决了它
推荐阅读
- queue - Laravel Nova:可排队操作为多个资源创建单个作业
- python - 基于 for 的语法跳过对“iter”的调用
- jenkins - 如何在 jenkins 中将 NODE 转换为 STAGE
- python - Python 中的 Mosquitto 密码生成
- node.js - docker 文件节点 npm 中的 dot-prop 漏洞修复
- python - 如何找到具有年龄和计数列的人口数据框的中位数?
- php - 联系表格 7 不在我的 wordpress 网站中?但在空白页上工作我的代码有一些问题
- java - org.apache.poi.openxml4j.exceptions.OpenXML4JRuntimeException:保存失败 无法加载 [org.apache.xml.serializer.ToXMLStream]
- oracle - 将 Oracle tnsnames.ora 与 DataGrip 一起使用
- android - DecimalFormatSymbols.getInstance().decimalSeparator 返回错误的小数分隔符