private Map<Object, Long> termsBucketToMap(Iterable<TermsBucket> buckets) { Map<Object, Long> results = new HashMap<>(); for (TermsBucket b : buckets) { results.put(b.getKey(), b.getCount()); } return results; }
private Map<Object, Long> termsBucketToMap(Iterable<TermsBucket> buckets) { Map<Object, Long> results = new HashMap<>(); for (TermsBucket b : buckets) { results.put(b.getKey(), b.getCount()); } return results; }
private Map<Object, Map<Object, Long>> nestedTermsBucketToMap(Iterable<TermsBucket> buckets, String nestedAggName) { Map<Object, Map<Object, Long>> results = new HashMap<>(); for (TermsBucket entry : buckets) { TermsResult nestedResults = (TermsResult) entry.getNestedResults().get(nestedAggName); if (nestedResults == null) { throw new VertexiumException("Could not find nested: " + nestedAggName); } results.put(entry.getKey(), termsBucketToMap(nestedResults.getBuckets())); } return results; }
private Map<Object, Map<Object, Long>> nestedTermsBucketToMap(Iterable<TermsBucket> buckets, String nestedAggName) { Map<Object, Map<Object, Long>> results = new HashMap<>(); for (TermsBucket entry : buckets) { TermsResult nestedResults = (TermsResult) entry.getNestedResults().get(nestedAggName); if (nestedResults == null) { throw new VertexiumException("Could not find nested: " + nestedAggName); } results.put(entry.getKey(), termsBucketToMap(nestedResults.getBuckets())); } return results; }
private ClientApiSearchResponse.TermsAggregateResult toClientApiTermsAggregateResult(TermsResult agg) { ClientApiSearchResponse.TermsAggregateResult result = new ClientApiSearchResponse.TermsAggregateResult(); for (TermsBucket termsBucket : agg.getBuckets()) { ClientApiSearchResponse.TermsAggregateResult.Bucket b = new ClientApiSearchResponse.TermsAggregateResult.Bucket( termsBucket.getCount(), toClientApiNestedResults(termsBucket.getNestedResults()) ); result.getBuckets().put(termsBucket.getKey().toString(), b); } return result; }
assertEquals(1, lowerNestedResult.size()); assertEquals(2, lowerTermsBuckets.size()); assertEquals("Alice", lowerTermsBuckets.get(0).getKey()); assertEquals(2, lowerTermsBuckets.get(0).getCount()); assertEquals("Bob", lowerTermsBuckets.get(1).getKey()); assertEquals(1, lowerTermsBuckets.get(1).getCount()); assertEquals(1, upperNestedResult.size()); assertEquals(1, upperTermsBuckets.size()); assertEquals("Alice", upperTermsBuckets.get(0).getKey()); assertEquals(1, upperTermsBuckets.get(0).getCount());
assertEquals(1, lowerNestedResult.size()); assertEquals(2, lowerTermsBuckets.size()); assertEquals("Alice", lowerTermsBuckets.get(0).getKey()); assertEquals(2, lowerTermsBuckets.get(0).getCount()); assertEquals("Bob", lowerTermsBuckets.get(1).getKey()); assertEquals(1, lowerTermsBuckets.get(1).getCount()); assertEquals(1, upperNestedResult.size()); assertEquals(1, upperTermsBuckets.size()); assertEquals("Alice", upperTermsBuckets.get(0).getKey()); assertEquals(1, upperTermsBuckets.get(0).getCount());
@Test public void testCaseSensitivityOfExactMatch() { graph.defineProperty("text").dataType(String.class).textIndexHint(TextIndexHint.EXACT_MATCH).define(); graph.prepareVertex("v1", VISIBILITY_A) .setProperty("text", "Joe", VISIBILITY_A) .save(AUTHORIZATIONS_A); graph.prepareVertex("v2", VISIBILITY_A) .setProperty("text", "joe", VISIBILITY_A) .save(AUTHORIZATIONS_A); graph.prepareVertex("v3", VISIBILITY_A) .setProperty("text", "JOE", VISIBILITY_A) .save(AUTHORIZATIONS_A); graph.prepareVertex("v4", VISIBILITY_A) .setProperty("text", "Joe", VISIBILITY_A) .save(AUTHORIZATIONS_A); graph.flush(); QueryResultsIterable<Vertex> vertices = graph.query(AUTHORIZATIONS_A) .has("text", Compare.EQUAL, "Joe") .addAggregation(new TermsAggregation("agg1", "text")) .vertices(); assertVertexIdsAnyOrder(vertices, "v1", "v2", "v3", "v4"); TermsResult agg = vertices.getAggregationResult("agg1", TermsResult.class); ArrayList<TermsBucket> buckets = Lists.newArrayList(agg.getBuckets()); assertEquals(1, buckets.size()); assertEquals("Joe", buckets.get(0).getKey()); assertEquals(4L, buckets.get(0).getCount()); }
@Test public void testCaseSensitivityOfExactMatch() { graph.defineProperty("text").dataType(String.class).textIndexHint(TextIndexHint.EXACT_MATCH).define(); graph.prepareVertex("v1", VISIBILITY_A) .setProperty("text", "Joe", VISIBILITY_A) .save(AUTHORIZATIONS_A); graph.prepareVertex("v2", VISIBILITY_A) .setProperty("text", "joe", VISIBILITY_A) .save(AUTHORIZATIONS_A); graph.prepareVertex("v3", VISIBILITY_A) .setProperty("text", "JOE", VISIBILITY_A) .save(AUTHORIZATIONS_A); graph.prepareVertex("v4", VISIBILITY_A) .setProperty("text", "Joe", VISIBILITY_A) .save(AUTHORIZATIONS_A); graph.flush(); QueryResultsIterable<Vertex> vertices = graph.query(AUTHORIZATIONS_A) .has("text", Compare.EQUAL, "Joe") .addAggregation(new TermsAggregation("agg1", "text")) .vertices(); assertVertexIdsAnyOrder(vertices, "v1", "v2", "v3", "v4"); TermsResult agg = vertices.getAggregationResult("agg1", TermsResult.class); ArrayList<TermsBucket> buckets = Lists.newArrayList(agg.getBuckets()); assertEquals(1, buckets.size()); assertEquals("Joe", buckets.get(0).getKey()); assertEquals(4L, buckets.get(0).getCount()); }