Search in sources :

Example 11 with FusiformSimilarity

use of com.baidu.hugegraph.structure.traverser.FusiformSimilarity in project incubator-hugegraph-toolchain by apache.

the class FusiformSimilarityApiTest method testFusiformSimilarityLimit.

@Test
public void testFusiformSimilarityLimit() {
    Object p1 = getVertexId("person", "name", "p1");
    Object p2 = getVertexId("person", "name", "p2");
    Object p3 = getVertexId("person", "name", "p3");
    FusiformSimilarityRequest.Builder builder = FusiformSimilarityRequest.builder();
    builder.sources().ids(p1, p2, p3);
    builder.label("read").direction(Direction.OUT).minNeighbors(5).alpha(0.8D).top(2);
    builder.capacity(-1).limit(-1);
    FusiformSimilarityRequest request = builder.build();
    FusiformSimilarity results = fusiformSimilarityAPI.post(request);
    Assert.assertEquals(3, results.size());
    builder = FusiformSimilarityRequest.builder();
    builder.sources().ids(p1, p2, p3);
    builder.label("read").direction(Direction.OUT).minNeighbors(5).alpha(0.8D).top(2);
    builder.capacity(-1).limit(2);
    request = builder.build();
    results = fusiformSimilarityAPI.post(request);
    Assert.assertEquals(2, results.size());
    builder = FusiformSimilarityRequest.builder();
    builder.sources().ids(p1, p2, p3);
    builder.label("read").direction(Direction.OUT).minNeighbors(5).alpha(0.8D).top(2);
    builder.capacity(-1).limit(1);
    request = builder.build();
    results = fusiformSimilarityAPI.post(request);
    Assert.assertEquals(1, results.size());
}
Also used : FusiformSimilarity(com.baidu.hugegraph.structure.traverser.FusiformSimilarity) FusiformSimilarityRequest(com.baidu.hugegraph.structure.traverser.FusiformSimilarityRequest) Test(org.junit.Test)

Example 12 with FusiformSimilarity

use of com.baidu.hugegraph.structure.traverser.FusiformSimilarity in project incubator-hugegraph-toolchain by apache.

the class FusiformSimilarityApiTest method testFusiformSimilarityLessThanMinEdgeCount.

@Test
public void testFusiformSimilarityLessThanMinEdgeCount() {
    FusiformSimilarityRequest.Builder builder = FusiformSimilarityRequest.builder();
    builder.sources().label("person").property("name", "p1");
    builder.label("read").direction(Direction.OUT).minNeighbors(10).alpha(0.8D).groupProperty("city").minGroups(2);
    builder.capacity(-1).limit(-1);
    FusiformSimilarityRequest request = builder.build();
    FusiformSimilarity results = fusiformSimilarityAPI.post(request);
    Assert.assertEquals(0, results.size());
    builder = FusiformSimilarityRequest.builder();
    builder.sources().label("person").property("name", "p1");
    builder.label("read").direction(Direction.OUT).minNeighbors(9).alpha(0.8D).groupProperty("city").minGroups(2);
    builder.capacity(-1).limit(-1);
    request = builder.build();
    results = fusiformSimilarityAPI.post(request);
    Assert.assertEquals(1, results.size());
    builder = FusiformSimilarityRequest.builder();
    builder.sources().label("person").property("name", "p2");
    builder.label("read").direction(Direction.OUT).minNeighbors(10).alpha(0.8D).groupProperty("city").minGroups(2);
    builder.capacity(-1).limit(-1);
    request = builder.build();
    results = fusiformSimilarityAPI.post(request);
    Assert.assertEquals(0, results.size());
    builder = FusiformSimilarityRequest.builder();
    builder.sources().label("person").property("name", "p2");
    builder.label("read").direction(Direction.OUT).minNeighbors(9).alpha(0.8D).groupProperty("city").minGroups(2);
    builder.capacity(-1).limit(-1);
    request = builder.build();
    results = fusiformSimilarityAPI.post(request);
    Assert.assertEquals(1, results.size());
    builder = FusiformSimilarityRequest.builder();
    builder.sources().label("person").property("name", "p3");
    builder.label("read").direction(Direction.OUT).minNeighbors(8).alpha(0.8D).groupProperty("city").minGroups(2);
    builder.capacity(-1).limit(-1);
    request = builder.build();
    results = fusiformSimilarityAPI.post(request);
    Assert.assertEquals(0, results.size());
    builder = FusiformSimilarityRequest.builder();
    builder.sources().label("person").property("name", "p2");
    builder.label("read").direction(Direction.OUT).minNeighbors(7).alpha(0.8D).groupProperty("city").minGroups(2);
    builder.capacity(-1).limit(-1);
    request = builder.build();
    results = fusiformSimilarityAPI.post(request);
    Assert.assertEquals(1, results.size());
}
Also used : FusiformSimilarity(com.baidu.hugegraph.structure.traverser.FusiformSimilarity) FusiformSimilarityRequest(com.baidu.hugegraph.structure.traverser.FusiformSimilarityRequest) Test(org.junit.Test)

Aggregations

FusiformSimilarity (com.baidu.hugegraph.structure.traverser.FusiformSimilarity)12 FusiformSimilarityRequest (com.baidu.hugegraph.structure.traverser.FusiformSimilarityRequest)12 Test (org.junit.Test)12 ImmutableMap (com.google.common.collect.ImmutableMap)10 ImmutableSet (com.google.common.collect.ImmutableSet)10 Map (java.util.Map)10 Set (java.util.Set)10 Similar (com.baidu.hugegraph.structure.traverser.FusiformSimilarity.Similar)5 Vertex (com.baidu.hugegraph.structure.graph.Vertex)4