本文整理了Java中org.vertexium.query.Query.addAggregation
方法的一些代码示例,展示了Query.addAggregation
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Query.addAggregation
方法的具体详情如下:
包路径:org.vertexium.query.Query
类名称:Query
方法名:addAggregation
[英]Add an aggregation to the query
[中]向查询中添加聚合
代码示例来源:origin: org.visallo/visallo-core
private void applyAggregationsToQuery(QueryAndData queryAndData, SearchOptions searchOptions) {
Query query = queryAndData.getQuery();
String[] aggregates = searchOptions.getOptionalParameter("aggregations[]", String[].class);
if (aggregates == null) {
return;
}
for (String aggregate : aggregates) {
JSONObject aggregateJson = new JSONObject(aggregate);
Aggregation aggregation = getAggregation(aggregateJson);
query.addAggregation(aggregation);
}
}
代码示例来源:origin: org.vertexium/vertexium-test
private StatisticsResult queryGraphQueryWithStatisticsAggregation(String propertyName, Authorizations authorizations) {
Query q = graph.query(authorizations).limit(0);
StatisticsAggregation agg = new StatisticsAggregation("stats", propertyName);
if (!q.isAggregationSupported(agg)) {
LOGGER.warn("%s unsupported", StatisticsAggregation.class.getName());
return null;
}
q.addAggregation(agg);
return q.vertices().getAggregationResult("stats", StatisticsResult.class);
}
代码示例来源:origin: org.vertexium/vertexium-test
private CardinalityResult queryGraphQueryWithCardinalityAggregation(String propertyName, Authorizations authorizations) {
Query q = graph.query(authorizations).limit(0);
CardinalityAggregation agg = new CardinalityAggregation("card", propertyName);
if (!q.isAggregationSupported(agg)) {
LOGGER.warn("%s unsupported", CardinalityAggregation.class.getName());
return null;
}
q.addAggregation(agg);
return q.vertices().getAggregationResult("card", CardinalityResult.class);
}
代码示例来源:origin: visallo/vertexium
private CardinalityResult queryGraphQueryWithCardinalityAggregation(String propertyName, Authorizations authorizations) {
Query q = graph.query(authorizations).limit(0);
CardinalityAggregation agg = new CardinalityAggregation("card", propertyName);
if (!q.isAggregationSupported(agg)) {
LOGGER.warn("%s unsupported", CardinalityAggregation.class.getName());
return null;
}
q.addAggregation(agg);
return q.vertices().getAggregationResult("card", CardinalityResult.class);
}
代码示例来源:origin: visallo/vertexium
private StatisticsResult queryGraphQueryWithStatisticsAggregation(String propertyName, Authorizations authorizations) {
Query q = graph.query(authorizations).limit(0);
StatisticsAggregation agg = new StatisticsAggregation("stats", propertyName);
if (!q.isAggregationSupported(agg)) {
LOGGER.warn("%s unsupported", StatisticsAggregation.class.getName());
return null;
}
q.addAggregation(agg);
return q.vertices().getAggregationResult("stats", StatisticsResult.class);
}
代码示例来源:origin: org.vertexium/vertexium-test
private Map<Object, Long> queryGraphQueryWithTermsAggregation(String queryString, String propertyName, ElementType elementType, Authorizations authorizations) {
Query q = (queryString == null ? graph.query(authorizations) : graph.query(queryString, authorizations)).limit(0);
TermsAggregation agg = new TermsAggregation("terms-count", propertyName);
if (!q.isAggregationSupported(agg)) {
LOGGER.warn("%s unsupported", agg.getClass().getName());
return null;
}
q.addAggregation(agg);
QueryResultsIterable<? extends Element> elements = elementType == ElementType.VERTEX ? q.vertices() : q.edges();
TermsResult aggregationResult = elements.getAggregationResult("terms-count", TermsResult.class);
return termsBucketToMap(aggregationResult.getBuckets());
}
代码示例来源:origin: visallo/vertexium
private Map<Object, Long> queryGraphQueryWithTermsAggregation(String queryString, String propertyName, ElementType elementType, Authorizations authorizations) {
Query q = (queryString == null ? graph.query(authorizations) : graph.query(queryString, authorizations)).limit(0);
TermsAggregation agg = new TermsAggregation("terms-count", propertyName);
if (!q.isAggregationSupported(agg)) {
LOGGER.warn("%s unsupported", agg.getClass().getName());
return null;
}
q.addAggregation(agg);
QueryResultsIterable<? extends Element> elements = elementType == ElementType.VERTEX ? q.vertices() : q.edges();
TermsResult aggregationResult = elements.getAggregationResult("terms-count", TermsResult.class);
return termsBucketToMap(aggregationResult.getBuckets());
}
代码示例来源:origin: org.visallo/visallo-core
public JSONObject getAverages(int minutes, Graph graph, Authorizations authorizations) {
Date minutesAgo = new Date(System.currentTimeMillis() - minutes * 60 * 1000);
Query q = graph.query(authorizations)
.has(VisalloProperties.CONCEPT_TYPE.getPropertyName(), PingOntology.IRI_CONCEPT_PING)
.has(PingOntology.CREATE_DATE.getPropertyName(), Compare.GREATER_THAN, minutesAgo)
.limit(0);
q.addAggregation(new StatisticsAggregation(PingOntology.SEARCH_TIME_MS.getPropertyName(), PingOntology.SEARCH_TIME_MS.getPropertyName()));
q.addAggregation(new StatisticsAggregation(PingOntology.RETRIEVAL_TIME_MS.getPropertyName(), PingOntology.RETRIEVAL_TIME_MS.getPropertyName()));
q.addAggregation(new StatisticsAggregation(PingOntology.GRAPH_PROPERTY_WORKER_WAIT_TIME_MS.getPropertyName(), PingOntology.GRAPH_PROPERTY_WORKER_WAIT_TIME_MS.getPropertyName()));
q.addAggregation(new StatisticsAggregation(PingOntology.LONG_RUNNING_PROCESS_WAIT_TIME_MS.getPropertyName(), PingOntology.LONG_RUNNING_PROCESS_WAIT_TIME_MS.getPropertyName()));
QueryResultsIterable<Vertex> vertices = q.vertices();
StatisticsResult searchTimeAgg = vertices.getAggregationResult(PingOntology.SEARCH_TIME_MS.getPropertyName(), StatisticsResult.class);
StatisticsResult retrievalTimeAgg = vertices.getAggregationResult(PingOntology.RETRIEVAL_TIME_MS.getPropertyName(), StatisticsResult.class);
StatisticsResult gpwWaitTimeAgg = vertices.getAggregationResult(PingOntology.GRAPH_PROPERTY_WORKER_WAIT_TIME_MS.getPropertyName(), StatisticsResult.class);
StatisticsResult lrpWaitTimeAgg = vertices.getAggregationResult(PingOntology.LONG_RUNNING_PROCESS_WAIT_TIME_MS.getPropertyName(), StatisticsResult.class);
JSONObject json = new JSONObject();
json.put("pingCount", searchTimeAgg.getCount());
json.put("averageSearchTime", searchTimeAgg.getAverage());
json.put("averageRetrievalTime", retrievalTimeAgg.getAverage());
json.put("graphPropertyWorkerCount", gpwWaitTimeAgg.getCount());
json.put("averageGraphPropertyWorkerWaitTime", gpwWaitTimeAgg.getAverage());
json.put("longRunningProcessCount", lrpWaitTimeAgg.getCount());
json.put("averageLongRunningProcessWaitTime", lrpWaitTimeAgg.getAverage());
return json;
}
代码示例来源:origin: visallo/vertexium
private Map<String, Long> queryGraphQueryWithGeohashAggregation(String propertyName, int precision, Authorizations authorizations) {
Query q = graph.query(authorizations).limit(0);
GeohashAggregation agg = new GeohashAggregation("geo-count", propertyName, precision);
if (!q.isAggregationSupported(agg)) {
LOGGER.warn("%s unsupported", GeohashAggregation.class.getName());
return null;
}
q.addAggregation(agg);
return geoHashBucketToMap(q.vertices().getAggregationResult("geo-count", GeohashResult.class).getBuckets());
}
代码示例来源:origin: org.vertexium/vertexium-test
private Map<String, Long> queryGraphQueryWithGeohashAggregation(String propertyName, int precision, Authorizations authorizations) {
Query q = graph.query(authorizations).limit(0);
GeohashAggregation agg = new GeohashAggregation("geo-count", propertyName, precision);
if (!q.isAggregationSupported(agg)) {
LOGGER.warn("%s unsupported", GeohashAggregation.class.getName());
return null;
}
q.addAggregation(agg);
return geoHashBucketToMap(q.vertices().getAggregationResult("geo-count", GeohashResult.class).getBuckets());
}
代码示例来源:origin: org.vertexium/vertexium-test
private PercentilesResult queryGraphQueryWithPercentilesAggregation(
String propertyName,
Visibility visibility,
Authorizations authorizations,
double... percents
) {
Query q = graph.query(authorizations).limit(0);
PercentilesAggregation agg = new PercentilesAggregation("percentiles", propertyName, visibility);
agg.setPercents(percents);
if (!q.isAggregationSupported(agg)) {
LOGGER.warn("%s unsupported", StatisticsAggregation.class.getName());
return null;
}
q.addAggregation(agg);
return q.vertices().getAggregationResult("percentiles", PercentilesResult.class);
}
代码示例来源:origin: visallo/vertexium
private PercentilesResult queryGraphQueryWithPercentilesAggregation(
String propertyName,
Visibility visibility,
Authorizations authorizations,
double... percents
) {
Query q = graph.query(authorizations).limit(0);
PercentilesAggregation agg = new PercentilesAggregation("percentiles", propertyName, visibility);
agg.setPercents(percents);
if (!q.isAggregationSupported(agg)) {
LOGGER.warn("%s unsupported", StatisticsAggregation.class.getName());
return null;
}
q.addAggregation(agg);
return q.vertices().getAggregationResult("percentiles", PercentilesResult.class);
}
代码示例来源:origin: org.vertexium/vertexium-test
private Map<Object, Long> queryGraphQueryWithHistogramAggregation(
String propertyName,
String interval,
Long minDocCount,
HistogramAggregation.ExtendedBounds extendedBounds,
Authorizations authorizations
) {
Query q = graph.query(authorizations).limit(0);
HistogramAggregation agg = new HistogramAggregation("hist-count", propertyName, interval, minDocCount);
agg.setExtendedBounds(extendedBounds);
if (!q.isAggregationSupported(agg)) {
LOGGER.warn("%s unsupported", HistogramAggregation.class.getName());
return null;
}
q.addAggregation(agg);
return histogramBucketToMap(q.vertices().getAggregationResult("hist-count", HistogramResult.class).getBuckets());
}
代码示例来源:origin: visallo/vertexium
private Map<Object, Long> queryGraphQueryWithHistogramAggregation(
String propertyName,
String interval,
Long minDocCount,
HistogramAggregation.ExtendedBounds extendedBounds,
Authorizations authorizations
) {
Query q = graph.query(authorizations).limit(0);
HistogramAggregation agg = new HistogramAggregation("hist-count", propertyName, interval, minDocCount);
agg.setExtendedBounds(extendedBounds);
if (!q.isAggregationSupported(agg)) {
LOGGER.warn("%s unsupported", HistogramAggregation.class.getName());
return null;
}
q.addAggregation(agg);
return histogramBucketToMap(q.vertices().getAggregationResult("hist-count", HistogramResult.class).getBuckets());
}
代码示例来源:origin: visallo/vertexium
private RangeResult queryGraphQueryWithRangeAggregation(
String propertyName,
String format,
String keyOne,
Object boundaryOne,
String keyTwo,
Object boundaryTwo,
String keyThree,
Authorizations authorizations
) {
Query q = graph.query(authorizations).limit(0);
RangeAggregation agg = new RangeAggregation("range-count", propertyName, format);
if (!q.isAggregationSupported(agg)) {
LOGGER.warn("%s unsupported", RangeAggregation.class.getName());
return null;
}
agg.addUnboundedTo(keyOne, boundaryOne);
agg.addRange(keyTwo, boundaryOne, boundaryTwo);
agg.addUnboundedFrom(keyThree, boundaryTwo);
q.addAggregation(agg);
return q.vertices().getAggregationResult("range-count", RangeResult.class);
}
代码示例来源:origin: org.vertexium/vertexium-test
private RangeResult queryGraphQueryWithRangeAggregation(
String propertyName,
String format,
String keyOne,
Object boundaryOne,
String keyTwo,
Object boundaryTwo,
String keyThree,
Authorizations authorizations
) {
Query q = graph.query(authorizations).limit(0);
RangeAggregation agg = new RangeAggregation("range-count", propertyName, format);
if (!q.isAggregationSupported(agg)) {
LOGGER.warn("%s unsupported", RangeAggregation.class.getName());
return null;
}
agg.addUnboundedTo(keyOne, boundaryOne);
agg.addRange(keyTwo, boundaryOne, boundaryTwo);
agg.addUnboundedFrom(keyThree, boundaryTwo);
q.addAggregation(agg);
return q.vertices().getAggregationResult("range-count", RangeResult.class);
}
代码示例来源:origin: visallo/vertexium
@Test
public void testVertexQueryWithNestedTermsAggregationOnExtendedData() {
graph.defineProperty("name").dataType(String.class).textIndexHint(TextIndexHint.EXACT_MATCH, TextIndexHint.FULL_TEXT).define();
graph.defineProperty("gender").dataType(String.class).textIndexHint(TextIndexHint.EXACT_MATCH).define();
graph.prepareVertex("v1", VISIBILITY_EMPTY)
.addExtendedData("t1", "r1", "name", "Joe", VISIBILITY_EMPTY)
.addExtendedData("t1", "r1", "gender", "male", VISIBILITY_EMPTY)
.addExtendedData("t1", "r2", "name", "Sam", VISIBILITY_EMPTY)
.addExtendedData("t1", "r2", "gender", "male", VISIBILITY_EMPTY)
.addExtendedData("t1", "r3", "name", "Sam", VISIBILITY_EMPTY)
.addExtendedData("t1", "r3", "gender", "female", VISIBILITY_EMPTY)
.addExtendedData("t1", "r4", "name", "Sam", VISIBILITY_EMPTY)
.addExtendedData("t1", "r4", "gender", "female", VISIBILITY_EMPTY)
.save(AUTHORIZATIONS_A_AND_B);
graph.flush();
Vertex v1 = graph.getVertex("v1", AUTHORIZATIONS_A_AND_B);
Query q = v1.getExtendedData("t1").query(AUTHORIZATIONS_A_AND_B).limit(0);
TermsAggregation agg = new TermsAggregation("terms-count", "name");
agg.addNestedAggregation(new TermsAggregation("nested", "gender"));
assumeTrue("terms aggregation not supported", q.isAggregationSupported(agg));
q.addAggregation(agg);
TermsResult aggregationResult = q.extendedDataRows().getAggregationResult("terms-count", TermsResult.class);
Map<Object, Map<Object, Long>> vertexPropertyCountByValue = nestedTermsBucketToMap(aggregationResult.getBuckets(), "nested");
assertEquals(2, vertexPropertyCountByValue.size());
assertEquals(1, vertexPropertyCountByValue.get("Joe").size());
assertEquals(1L, (long) vertexPropertyCountByValue.get("Joe").get("male"));
assertEquals(2, vertexPropertyCountByValue.get("Sam").size());
assertEquals(1L, (long) vertexPropertyCountByValue.get("Sam").get("male"));
assertEquals(2L, (long) vertexPropertyCountByValue.get("Sam").get("female"));
}
代码示例来源:origin: org.vertexium/vertexium-test
@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());
}
代码示例来源:origin: org.vertexium/vertexium-test
@Test
public void testGraphQueryWithTermsAggregationAndPredicates() {
graph.defineProperty("name").dataType(String.class).textIndexHint(TextIndexHint.EXACT_MATCH, TextIndexHint.FULL_TEXT).define();
graph.defineProperty("gender").dataType(String.class).textIndexHint(TextIndexHint.EXACT_MATCH).define();
Query q = graph.query(AUTHORIZATIONS_EMPTY)
.has("name", Compare.EQUAL, "Susan");
TermsAggregation agg = new TermsAggregation("terms-count", "name");
assumeTrue("terms aggregation not supported", q.isAggregationSupported(agg));
q.addAggregation(agg);
TermsResult aggregationResult = q.vertices().getAggregationResult("terms-count", TermsResult.class);
Map<Object, Long> vertexPropertyCountByValue = termsBucketToMap(aggregationResult.getBuckets());
assertEquals(0, vertexPropertyCountByValue.size());
graph.prepareVertex("v1", VISIBILITY_EMPTY)
.addPropertyValue("k1", "gender", "female", VISIBILITY_A)
.save(AUTHORIZATIONS_A);
getGraph().flush();
q = graph.query(AUTHORIZATIONS_A)
.has("gender", Compare.EQUAL, "female");
agg = new TermsAggregation("terms-count", "gender");
assumeTrue("terms aggregation not supported", q.isAggregationSupported(agg));
q.addAggregation(agg);
aggregationResult = q.vertices().getAggregationResult("terms-count", TermsResult.class);
vertexPropertyCountByValue = termsBucketToMap(aggregationResult.getBuckets());
assertEquals(1, vertexPropertyCountByValue.size());
}
代码示例来源:origin: visallo/vertexium
@Test
public void testGraphQueryWithTermsAggregationAndPredicates() {
graph.defineProperty("name").dataType(String.class).textIndexHint(TextIndexHint.EXACT_MATCH, TextIndexHint.FULL_TEXT).define();
graph.defineProperty("gender").dataType(String.class).textIndexHint(TextIndexHint.EXACT_MATCH).define();
Query q = graph.query(AUTHORIZATIONS_EMPTY)
.has("name", Compare.EQUAL, "Susan");
TermsAggregation agg = new TermsAggregation("terms-count", "name");
assumeTrue("terms aggregation not supported", q.isAggregationSupported(agg));
q.addAggregation(agg);
TermsResult aggregationResult = q.vertices().getAggregationResult("terms-count", TermsResult.class);
Map<Object, Long> vertexPropertyCountByValue = termsBucketToMap(aggregationResult.getBuckets());
assertEquals(0, vertexPropertyCountByValue.size());
graph.prepareVertex("v1", VISIBILITY_EMPTY)
.addPropertyValue("k1", "gender", "female", VISIBILITY_A)
.save(AUTHORIZATIONS_A);
getGraph().flush();
q = graph.query(AUTHORIZATIONS_A)
.has("gender", Compare.EQUAL, "female");
agg = new TermsAggregation("terms-count", "gender");
assumeTrue("terms aggregation not supported", q.isAggregationSupported(agg));
q.addAggregation(agg);
aggregationResult = q.vertices().getAggregationResult("terms-count", TermsResult.class);
vertexPropertyCountByValue = termsBucketToMap(aggregationResult.getBuckets());
assertEquals(1, vertexPropertyCountByValue.size());
}
内容来源于网络,如有侵权,请联系作者删除!