Spring数据弹性搜索中带路径和过滤器的嵌套排序

Spring数据弹性搜索中带路径和过滤器的嵌套排序,
Warning: implode(): Invalid arguments passed in /data/phpspider/zhask/webroot/tpl/detail.html on line 45
,,我有一段代码需要转换成spring数据弹性搜索 {   "query": {     "match_all": {}   },   "size": 10,   "from": 0,   "sort": [     {       "program.title.descriptions.value.keyword": {         "order": "asc",         "nested": {           "path": "program.title.description

我有一段代码需要转换成spring数据弹性搜索

 {
  "query": {
    "match_all": {}
  },
  "size": 10,
  "from": 0,
  "sort": [
    {
      "program.title.descriptions.value.keyword": {
        "order": "asc",
        "nested": {
          "path": "program.title.descriptions",
          "filter": {
            "match": {
              "program.title.descriptions.length": "LONG"
            }
          }
        }
      }
    }
  ]
}
我已经试过了

SortBuilder sb = SortBuilders.fieldSort(sortBy).order(sortOrder).setNestedSort(new NestedSortBuilder(nestedPath))
但我不知道如何将“过滤器”部分添加到SortBuilder中。如果我尝试下面的方法

QueryBuilder matchFirst = QueryBuilders.boolQuery().filter(QueryBuilders.matchQuery("program.title.descriptions.length", "LONG"));
sb = SortBuilders.fieldSort(sortBy).order(sortOrder).setNestedSort(new NestedSortBuilder(nestedPath)).setNestedFilter(matchFirst);
它会说

java.lang.IllegalArgumentException: Setting both nested_path/nested_filter and nested not allowed
    at org.elasticsearch.search.sort.FieldSortBuilder.setNestedFilter(FieldSortBuilder.java:213)

任何想法都将不胜感激。

您需要在嵌套查询中设置过滤器。你可以试试

SortBuilder sb = SortBuilders.fieldSort(sortBy).order(sortOrder).setNestedSort(new NestedSortBuilder(nestedPath).setFilter(matchFirst));