Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- protected void addTermsAggregation (Exchange exchange, String name, String field, int size) {
- BoolQueryBuilder localQuery = boolQuery();
- addLocalClauses (localQuery, exchange , name);
- AbstractAggregationBuilder aggregation = createTermsAggregation(name, field , size);
- globalAggregations.add(aggregation);
- aggregations.add(AggregationBuilders.filter(name).filter(localQuery).subAggregation(aggregation));
- }
- public void addQuery (Exchange exchange) {
- // Query
- BoolQueryBuilder query = boolQuery();
- addGlobalClauses(query, exchange);
- // Post Filters
- BoolQueryBuilder postFilterQuery = boolQuery();
- addLocalClauses(postFilterQuery, exchange, "");
- // Exchange properties
- exchange.setProperty(ElasticsearchConstants.ELASTIC_QUERY, query);
- exchange.setProperty(ElasticsearchConstants.ELASTIC_POST_FILTER, postFilterQuery);
- aggregations = new ArrayList<>();
- globalAggregations = new ArrayList<>();
- addNestedAggregation (STARTUP_INDUSTRIES, STARTUP_INDUSTRIES_PATH, STARTUP_INDUSTRIES_PATH + ".category", STARTUP_INDUSTRIES_PATH + ".subcategory", STARTUP_INDUSTRIES_PATH + "label", 0, exchange);
- addNestedAggregation (STARTUP_TECHNOLOGIES, STARTUP_TECHNOLOGIES_PATH, STARTUP_TECHNOLOGIES_PATH + ".category", STARTUP_TECHNOLOGIES_PATH + ".label", "", 0, exchange);
- addNestedAggregation (STARTUP_LOCATIONS, STARTUP_LOCATIONS_PATH, STARTUP_LOCATIONS_PATH + ".continent.raw", STARTUP_LOCATIONS_PATH + ".country.raw", STARTUP_LOCATIONS_PATH + ".city.raw", 0, exchange);
- addTermsAggregation (exchange, STARTUP_PRODUCT_TYPES, STARTUP_PRODUCT_TYPE_PATH, 0);
- addTermsAggregation (exchange, STARTUP_CUSTOMER_FOCUSES, STARTUP_CUSTOMER_FOCUSES_PATH, 0);
- addTermsAggregation (exchange, STARTUP_MATURITIES, STARTUP_MATURITIES_PATH, 0);
- addRangeAggregation (exchange, STARTUP_TEAM_SIZE, STARTUP_TEAM_SIZE_PATH, 1);
- addRangeAggregation (exchange, STARTUP_EQUITY_FUNDING, STARTUP_EQUITY_FUNDING_PATH, 1);
- addRangeAggregation (exchange, STARTUP_NON_EQUITY_FUNDING, STARTUP_NON_EQUITY_FUNDING_PATH, 1);
- addTermsAggregation (exchange, STARTUP_CATEGORIES, STARTUP_CATEGORY_PATH + ".raw", 0);
- // addAggregation ("top500", "startup.specific_information.top500", 0, "terms", exchange);
- aggregations.add(globalAggregation(globalAggregations));
- exchange.setProperty(ElasticsearchConstants.ELASTIC_AGGREGATIONS, aggregations);
- }
- public void configure() {
- fromDirect("aggregate.startup")
- .log("Get aggregations of startup")
- .setProperty(ElasticsearchConstants.ELASTIC_INDEX, constant(IndicesConstants.STARTUP_INDEX))
- .setProperty(ElasticsearchConstants.ELASTIC_TYPE, constant(TypesConstants.STARTUP_TYPE))
- .setProperty(ElasticsearchConstants.ELASTIC_SIZE, constant(0))
- .process(startupAggregator::addQuery)
- .to(direct("elastic.search"))
- .process(startupWrapper::wrapAggregations)
- ;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement