DanGuge commented on code in PR #2262:
URL:
https://github.com/apache/incubator-hugegraph/pull/2262#discussion_r1292234800
##########
hugegraph-api/src/main/java/org/apache/hugegraph/api/traversers/SameNeighborsAPI.java:
##########
@@ -77,6 +89,81 @@ public String get(@Context GraphManager manager,
SameNeighborTraverser traverser = new SameNeighborTraverser(g);
Set<Id> neighbors = traverser.sameNeighbors(sourceId, targetId, dir,
edgeLabel, maxDegree,
limit);
- return manager.serializer(g).writeList("same_neighbors", neighbors);
+
+ measure.addIterCount(traverser.vertexIterCounter.get(),
+ traverser.edgeIterCounter.get());
+
+ return manager.serializer(g, measure.measures())
+ .writeList("same_neighbors", neighbors);
+ }
+
+ @POST
+ @Timed
+ @Produces(APPLICATION_JSON_WITH_CHARSET)
+ public String sameNeighbors(@Context GraphManager manager,
+ @PathParam("graph") String graph,
+ Request request) {
+ LOG.debug("Graph [{}] get same neighbors among batch, '{}'", graph,
request.toString());
+
+ ApiMeasurer measure = new ApiMeasurer();
+
+ Directions dir =
Directions.convert(EdgeAPI.parseDirection(request.direction));
+ HugeGraph g = graph(manager, graph);
+ SameNeighborTraverser traverser = new SameNeighborTraverser(g);
+
+ List<Object> vertexList = request.vertexList;
+ E.checkArgument(vertexList.size() >= 2, "vertex_list size can't " +
+ "be less than 2");
+
+ List<Id> vertexIds = new ArrayList<>();
+ for (Object obj : vertexList) {
+ vertexIds.add(HugeVertex.getIdValue(obj));
+ }
+
+ Set<Id> neighbors = traverser.sameNeighbors(vertexIds, dir,
request.labels,
+ request.maxDegree,
request.limit);
+ measure.addIterCount(traverser.vertexIterCounter.get(),
+ traverser.edgeIterCounter.get());
+
+ Iterator<?> iterVertex;
+ Set<Id> ids = new HashSet<>(neighbors);
+ ids.addAll(vertexIds);
+ if (request.withVertex && !ids.isEmpty()) {
+ iterVertex = g.vertices(ids.toArray());
+ } else {
+ iterVertex = ids.iterator();
+ }
+ return manager.serializer(g, measure.measures())
+ .writeMap(ImmutableMap.of("same_neighbors", neighbors,
+ "vertices", iterVertex));
+ }
+
+ private static class Request {
+ @JsonProperty("max_degree")
+ public long maxDegree = Long.parseLong(DEFAULT_MAX_DEGREE);
+ @JsonProperty("limit")
+ public int limit = Integer.parseInt(DEFAULT_ELEMENTS_LIMIT);
+ @JsonProperty("vertex_list")
+ private List<Object> vertexList;
+ @JsonProperty("direction")
+ private String direction;
+ @JsonProperty("labels")
+ private List<String> labels;
+ @JsonProperty("with_vertex")
+ private boolean withVertex = false;
+
+ @Override
+ public String toString() {
Review Comment:
fixed
##########
hugegraph-api/src/main/java/org/apache/hugegraph/api/traversers/TemplatePathsAPI.java:
##########
@@ -74,50 +90,50 @@ public String post(@Context GraphManager manager,
LOG.debug("Graph [{}] get template paths from source vertices '{}', " +
"target vertices '{}', with steps '{}', " +
- "capacity '{}', limit '{}' and with_vertex '{}'",
+ "capacity '{}', limit '{}', with vertex '{}' and with edge
'{}'",
Review Comment:
fixed
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]