elasticsearch 6.3.2 的 NestedSortBuilder 使用示例
NestedSortBuilder usage example for elasticsearch 6.3.2
我必须对使用弹性 java 高级休息客户端 api 嵌套一层的字段进行排序。我能找到这个答案
问题是答案使用 SortBuilder 对嵌套字段进行排序,代码如下:
SortBuilder sb = SortBuilders.fieldSort("authorList.lastName")
.order(SortOrder.ASC)
.setNestedPath("authorList")
.setNestedFilter(matchFirst);
不过,在 6.3.2 elastic (deprication info) 中似乎已弃用 nestedPath 和 NestedFilter,并引入了新的 NestedSortBuilder。但是我无法使用它构建查询。任何人都可以解释如何使用它,或者给我指出一个使用它的例子吗?
其实很简单。这对我有用:
SortBuilders.fieldSort("bulkOrders.expiryDate").order(SortOrder.asc).setNestedSort(new NestedSortBuilder("bulkOrders"));
这相当于:
"sort": [
{
"bulkOrders.expiryDate": {
"order": "asc",
"nested": {
"path": "bulkOrders"
}
}
}
]
我必须对使用弹性 java 高级休息客户端 api 嵌套一层的字段进行排序。我能找到这个答案
问题是答案使用 SortBuilder 对嵌套字段进行排序,代码如下:
SortBuilder sb = SortBuilders.fieldSort("authorList.lastName")
.order(SortOrder.ASC)
.setNestedPath("authorList")
.setNestedFilter(matchFirst);
不过,在 6.3.2 elastic (deprication info) 中似乎已弃用 nestedPath 和 NestedFilter,并引入了新的 NestedSortBuilder。但是我无法使用它构建查询。任何人都可以解释如何使用它,或者给我指出一个使用它的例子吗?
其实很简单。这对我有用:
SortBuilders.fieldSort("bulkOrders.expiryDate").order(SortOrder.asc).setNestedSort(new NestedSortBuilder("bulkOrders"));
这相当于:
"sort": [
{
"bulkOrders.expiryDate": {
"order": "asc",
"nested": {
"path": "bulkOrders"
}
}
}
]