From 3ec3958a52f624e4909fd37e8a89f83d6685b2dc Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Wed, 11 Jun 2025 09:13:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=AA=E6=8E=92=E5=8D=95=E7=AE=A1=E7=90=86-?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E6=8E=92=E5=8D=95=E5=88=97=E8=A1=A8es?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../optimizeplan/OptimizePlanServiceImpl.java | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java index 3c1963144..94324de87 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java @@ -9,6 +9,8 @@ import co.elastic.clients.elasticsearch._types.ElasticsearchException; import co.elastic.clients.elasticsearch._types.FieldValue; import co.elastic.clients.elasticsearch._types.SortOrder; import co.elastic.clients.elasticsearch._types.aggregations.Aggregate; +import co.elastic.clients.elasticsearch.core.CountRequest; +import co.elastic.clients.elasticsearch.core.CountResponse; import co.elastic.clients.elasticsearch.core.SearchRequest; import co.elastic.clients.elasticsearch.core.SearchResponse; import co.elastic.clients.elasticsearch.core.UpdateByQueryRequest; @@ -825,9 +827,8 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { List results = new ArrayList<>(); try { // 查询总数 - SearchRequest totalRequest = new SearchRequest.Builder() + CountRequest countRequest = new CountRequest.Builder() .index(ORDER_PLATE_MODEL.getIndex()) - .size(0) // 不返回文档,仅统计总数 .query(q -> q.bool(b -> b .filter(f -> f.terms(t -> t .field("orderId") @@ -835,21 +836,27 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { )) )) .build(); - SearchResponse totalResponse = elasticsearchClient.search(totalRequest, Void.class); - long total = totalResponse.hits().total().value(); + CountResponse totalResponse = elasticsearchClient.count(countRequest); + long total = totalResponse.count(); // 分页查询 - int pageNum = PageUtil.totalPage(total, 5000); + int pageNum = PageUtil.totalPage(total, 2000); FieldValue searchAfterSortId = FieldValue.of(1); for (int page = 1; page <= pageNum; page++) { SearchRequest.Builder searchBuilder = new SearchRequest.Builder() .index(ORDER_PLATE_MODEL.getIndex()) - .size(5000) - .sort(s -> s.field(f -> f.field("sortId").order(SortOrder.Asc))) + .size(2000) + .sort(s -> s.field(f -> f.field("id.keyword").order(SortOrder.Asc))) .query(q -> q.bool(b -> b .filter(f -> f.terms(t -> t.field("orderId").terms(e -> e.value(orderIds.stream().map(FieldValue::of).toList())))) - )); + )) + .source(s -> s + .filter(f -> f + .includes("holeDetail", "sideHoleDetail", "contourDetail", "sideDetail", "id") + ) + ) + .trackTotalHits(t -> t.enabled(false)); searchBuilder.searchAfter(searchAfterSortId); @@ -861,11 +868,11 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { results.add(hit.source()); } - // 取最后一个命中文档的 sortId 作为下一页的 search_after 值 + // 取最后一个命中文档的 id 作为下一页的 search_after 值 if (!hits.isEmpty()) { OrderModelDO lastDoc = hits.get(hits.size() - 1).source(); if (lastDoc != null) { - searchAfterSortId = FieldValue.of(lastDoc.getSortId()); + searchAfterSortId = FieldValue.of(lastDoc.getId()); } else { // 没有更多数据了 break;