elasticsearch - Spring Data Elastic 搜索未在 Java 中正确排序列表
问题描述
我有以下数据。
Product
A-DC1
ssss
A-DC3
A-DC2
我有以下方法:
public List<Product> searchAndSort(String search, Pageable pageable) {
List<Product> productList = null;
if (search != null && !search.equals("")) {
((BoolQuerBuilder)(qb)).must((Querybuilders.matchQuery("product", search)));
}
NativeSearchQueryBuilder ns = new NativeSearchQueryBuilder();
ns.withQuery(qb);
ns.withPageable(pageable);
ns.withSearchType(SearchType.QUERY_THEN_FETCH);
productList = productRep.search(ns);
return productList;
}
pageable 参数的排序值为“product,asc”表示升序,“product,desc”表示降序。
当我按升序排序时,我得到以下信息:
A-DC1
A-DC2
A-DC3
ssss
当我按降序排序时,我得到以下信息:
A-DC1
ssss
A-DC2
A-DC3
谁能告诉我为什么会这样?另外,有没有办法在弹性中进行字母数字/自然排序?IE 如果我有 Pr 1、Pr 2、Pr 3、Pr 10,我希望它按以下顺序显示:
Pr 1
Pr 2
Pr 3
Pr 10
目前,它显示:
Pr 1
Pr 10
Pr 2
Pr 3
解决方案
推荐阅读
- javascript - IntersectionOberserver 与新出现的元素
- scala - 使用 scala 中的 JsonPath 提取完整字段:值列表
- angular - 无法显示数组数据
- scala - 如果自上一个检查点创建以来没有更改,如何调用 DeltaLog checkpoint()?
- pyspark - 如何在 Pyspark MLlib 模型中允许 NULL/NaN?
- python-3.x - 有没有办法并行运行子进程?
- java - 如何调试jvm内存泄漏?
- ios - 如何在 Swift 中重构重复的 Firestore 文档 ID?
- r - 如何创建具有两个向量中存在的字符链的变量
- mongodb - Mongo db 请求不是基于哈希的