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"
            }
          }
        }
      ]