|
@@ -21,6 +21,7 @@ import cn.cslg.pas.service.business.CustomOptionService;
|
|
|
import cn.cslg.pas.service.business.TreeNodeService;
|
|
|
import cn.cslg.pas.service.query.FormatQueryService;
|
|
|
import co.elastic.clients.elasticsearch.ElasticsearchClient;
|
|
|
+import co.elastic.clients.elasticsearch._types.SortOptions;
|
|
|
import co.elastic.clients.elasticsearch._types.SortOrder;
|
|
|
import co.elastic.clients.elasticsearch._types.aggregations.Aggregation;
|
|
|
import co.elastic.clients.elasticsearch._types.aggregations.AggregationBuilders;
|
|
@@ -359,6 +360,8 @@ public class EsCustomFieldService {
|
|
|
Query q = formatQueryService.EsQueryToQuery((operateNode) tree, "patent");
|
|
|
builder.query(q);
|
|
|
|
|
|
+ //排序
|
|
|
+ List<SortOptions> optionsList = new ArrayList<>();
|
|
|
List<OrderDTO> dtoList = vo.getOrderDTOList();
|
|
|
if (!CollectionUtils.isEmpty(dtoList)) {
|
|
|
String json = CommonService.readJsonFile("patent.json");
|
|
@@ -367,21 +370,19 @@ public class EsCustomFieldService {
|
|
|
EsConfigVO configVO = esConfigVOS.stream().filter(item -> item.getField().equals(orderDTO.getOrderBy())).findFirst().orElse(null);
|
|
|
if (configVO != null) {
|
|
|
if (orderDTO.getOrderType().equals(IfConstant.NO)) {
|
|
|
- builder.sort(sortOptionsBuilder -> sortOptionsBuilder
|
|
|
- .field(fieldSortBuilder -> fieldSortBuilder
|
|
|
- .field(configVO.getEsField()).order(SortOrder.Asc)));
|
|
|
+ SortOptions sortOptions = SortOptions.of(i -> i.field(j -> j.field(configVO.getEsField()).order(SortOrder.Asc).missing(-1)));
|
|
|
+ optionsList.add(sortOptions);
|
|
|
} else {
|
|
|
- builder.sort(sortOptionsBuilder -> sortOptionsBuilder
|
|
|
- .field(fieldSortBuilder -> fieldSortBuilder
|
|
|
- .field(configVO.getEsField()).order(SortOrder.Desc)));
|
|
|
+ SortOptions sortOptions = SortOptions.of(i -> i.field(j -> j.field(configVO.getEsField()).order(SortOrder.Desc).missing(-1)));
|
|
|
+ optionsList.add(sortOptions);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
- builder.sort(sortOptionsBuilder -> sortOptionsBuilder
|
|
|
- .field(fieldSortBuilder -> fieldSortBuilder
|
|
|
- .field("patent_no.keyword").order(SortOrder.Desc)));
|
|
|
+ SortOptions sortOptions = SortOptions.of(i -> i.field(j -> j.field("patent_no.keyword").order(SortOrder.Desc).missing(-1)));
|
|
|
+ optionsList.add(sortOptions);
|
|
|
}
|
|
|
+ builder.sort(optionsList);
|
|
|
|
|
|
int number = endNum - startNum;
|
|
|
if (startNum > 0 && endNum > startNum) {
|