From 9f1f634095573cdfa3063297033218010660ec94 Mon Sep 17 00:00:00 2001 From: chenyawei Date: Fri, 24 Jan 2025 16:54:14 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../completion/GraphCommonService.java | 11 ++--------- .../completion/RelationCompletion.java | 19 +++---------------- .../relationcompletion/util/NebulaUtil.java | 3 +-- .../src/main/resources/application.yaml | 6 +++--- 4 files changed, 9 insertions(+), 30 deletions(-) diff --git a/relation-completion/src/main/java/com/idata/tools/relationcompletion/completion/GraphCommonService.java b/relation-completion/src/main/java/com/idata/tools/relationcompletion/completion/GraphCommonService.java index 927d6c1..d0487e7 100644 --- a/relation-completion/src/main/java/com/idata/tools/relationcompletion/completion/GraphCommonService.java +++ b/relation-completion/src/main/java/com/idata/tools/relationcompletion/completion/GraphCommonService.java @@ -68,15 +68,8 @@ public class GraphCommonService { try { return new SessionPool(nebulaGraphProperties.getMaxConnSize(), nebulaGraphProperties.getMinConnsSize(), nebulaGraphProperties.getHostAddresses(), nebulaGraphProperties.getUserName(), nebulaGraphProperties.getPassword()); - } catch (UnknownHostException e) { - throw new RuntimeException(e); - } catch (IOErrorException e) { - throw new RuntimeException(e); - } catch (AuthFailedException e) { - throw new RuntimeException(e); - } catch (ClientServerIncompatibleException e) { - throw new RuntimeException(e); - } catch (NotValidConnectionException e) { + } catch (UnknownHostException | IOErrorException | ClientServerIncompatibleException | AuthFailedException | + NotValidConnectionException e) { throw new RuntimeException(e); } } diff --git a/relation-completion/src/main/java/com/idata/tools/relationcompletion/completion/RelationCompletion.java b/relation-completion/src/main/java/com/idata/tools/relationcompletion/completion/RelationCompletion.java index aa68e11..295cce4 100644 --- a/relation-completion/src/main/java/com/idata/tools/relationcompletion/completion/RelationCompletion.java +++ b/relation-completion/src/main/java/com/idata/tools/relationcompletion/completion/RelationCompletion.java @@ -82,26 +82,18 @@ public class RelationCompletion { while (true) { for (TagEnum tagEnum : TagEnum.values()) { - Object allGetNum = redisClient.get(ALLNUM); if (allGetNum != null && (Integer) allGetNum >= 5) { break; } - String tag = tagEnum.getTag(); - Object num = redisClient.get(tag + "_num"); - Integer skip = (Integer) (num == null ? 0 : num); - if (tagNumsMap.get(tag) < skip) { redisClient.increment(ALLNUM); continue; } - - log.info("开启{}类型的点为起始节点的第{}条数据到第{}条数据反向关系补全", tag, skip, skip + this.limitNum); - List idJsonResults = graphCommonService.executeJson(NebulaUtil.getTagIdsWithLimit(spaceName, tag, skip, this.limitNum), NebulaMultiMatchJsonResult.class); @@ -109,9 +101,10 @@ public class RelationCompletion { if (CollectionUtils.isEmpty(idJsonResults)) { break; } - List idLists = NebulaMultiMatchJsonResult.getIdLists(idJsonResults.get(0)); - + if (CollectionUtils.isEmpty(idLists)) { + break; + } List> futures = new ArrayList<>(); // 遍历边 EdgeEnum[] edgeEnums = EdgeEnum.values(); @@ -119,15 +112,10 @@ public class RelationCompletion { Integer finalSkip = skip; CompletableFuture setVertexAndEdgeTotalsMap = CompletableFuture.supplyAsync(() -> { try { - - String srcTag = edgeEnum.getSrcTag(); String edgeType = edgeEnum.getEdgeType(); String reverseRelation = edgeEnum.getReverseRelation(); - Instant now = Instant.now(); - - List vertexJsonResults = graphCommonService.executeJsonWithoutLogs( NebulaUtil.getDstVerticesById(spaceName, srcTag, idLists, edgeType), NebulaVertexJsonResult.class, @@ -153,7 +141,6 @@ public class RelationCompletion { } CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join(); - skip = skip + this.limitNum; redisClient.set(tag + "_num", skip); } diff --git a/relation-completion/src/main/java/com/idata/tools/relationcompletion/util/NebulaUtil.java b/relation-completion/src/main/java/com/idata/tools/relationcompletion/util/NebulaUtil.java index fa08111..c4655c9 100644 --- a/relation-completion/src/main/java/com/idata/tools/relationcompletion/util/NebulaUtil.java +++ b/relation-completion/src/main/java/com/idata/tools/relationcompletion/util/NebulaUtil.java @@ -2,7 +2,6 @@ package com.idata.tools.relationcompletion.util; import com.idata.tools.relationcompletion.dto.NebulaVertexJsonResult; import com.idata.tools.relationcompletion.vo.SearchSubgraphVo; -import com.vesoft.nebula.Edge; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -54,7 +53,7 @@ public class NebulaUtil { .map(id -> "'" + id + "'") .collect(Collectors.joining(", ")); - String format = String.format("USE %s; MATCH (v:%s)-[:%s]->(v2) WHERE id(v) IN [%s] RETURN v2", + String format = String.format("USE %s; MATCH (v:%s)-[e:%s]->(v2) WHERE id(v) IN [%s] RETURN v2", spaceName, tag, edgeType, idList); return format; } diff --git a/relation-completion/src/main/resources/application.yaml b/relation-completion/src/main/resources/application.yaml index 5ff6a60..94a8ccf 100644 --- a/relation-completion/src/main/resources/application.yaml +++ b/relation-completion/src/main/resources/application.yaml @@ -1,15 +1,15 @@ nebula: userName: root password: nebula - hostAddresses: 172.16.20.2:9669,172.16.20.4:9669,172.16.20.5:9669 + hostAddresses: 192.168.7.32:9669,192.168.7.153:9669 minConnsSize: 20 - maxConnSize: 100 + maxConnSize: 50 timeout: 600000 idleTime: 180000 spaceName: Y24_1206 limitNum: 10000 # redis: - host: 172.16.20.1 + host: 192.168.7.32 port: 6379 password: 123456 \ No newline at end of file