Вложенная сортировка с путем и фильтром в Spring Data Elastic Search - PullRequest
1 голос
/ 15 мая 2019

У меня есть этот кусок кода, который мне нужно преобразовать в spring-data -astic-search.

 {
  "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)

Любые идеи будут высоко оценены.

...