Advertisement
Guest User

Untitled

a guest
Jul 18th, 2018
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.36 KB | None | 0 0
  1. protected void addTermsAggregation (Exchange exchange, String name, String field, int size) {
  2. BoolQueryBuilder localQuery = boolQuery();
  3. addLocalClauses (localQuery, exchange , name);
  4.  
  5. AbstractAggregationBuilder aggregation = createTermsAggregation(name, field , size);
  6.  
  7. globalAggregations.add(aggregation);
  8. aggregations.add(AggregationBuilders.filter(name).filter(localQuery).subAggregation(aggregation));
  9. }
  10.  
  11. public void addQuery (Exchange exchange) {
  12.  
  13. // Query
  14. BoolQueryBuilder query = boolQuery();
  15. addGlobalClauses(query, exchange);
  16.  
  17. // Post Filters
  18. BoolQueryBuilder postFilterQuery = boolQuery();
  19. addLocalClauses(postFilterQuery, exchange, "");
  20.  
  21. // Exchange properties
  22. exchange.setProperty(ElasticsearchConstants.ELASTIC_QUERY, query);
  23. exchange.setProperty(ElasticsearchConstants.ELASTIC_POST_FILTER, postFilterQuery);
  24.  
  25. aggregations = new ArrayList<>();
  26. globalAggregations = new ArrayList<>();
  27.  
  28. addNestedAggregation (STARTUP_INDUSTRIES, STARTUP_INDUSTRIES_PATH, STARTUP_INDUSTRIES_PATH + ".category", STARTUP_INDUSTRIES_PATH + ".subcategory", STARTUP_INDUSTRIES_PATH + "label", 0, exchange);
  29. addNestedAggregation (STARTUP_TECHNOLOGIES, STARTUP_TECHNOLOGIES_PATH, STARTUP_TECHNOLOGIES_PATH + ".category", STARTUP_TECHNOLOGIES_PATH + ".label", "", 0, exchange);
  30. addNestedAggregation (STARTUP_LOCATIONS, STARTUP_LOCATIONS_PATH, STARTUP_LOCATIONS_PATH + ".continent.raw", STARTUP_LOCATIONS_PATH + ".country.raw", STARTUP_LOCATIONS_PATH + ".city.raw", 0, exchange);
  31. addTermsAggregation (exchange, STARTUP_PRODUCT_TYPES, STARTUP_PRODUCT_TYPE_PATH, 0);
  32. addTermsAggregation (exchange, STARTUP_CUSTOMER_FOCUSES, STARTUP_CUSTOMER_FOCUSES_PATH, 0);
  33. addTermsAggregation (exchange, STARTUP_MATURITIES, STARTUP_MATURITIES_PATH, 0);
  34. addRangeAggregation (exchange, STARTUP_TEAM_SIZE, STARTUP_TEAM_SIZE_PATH, 1);
  35. addRangeAggregation (exchange, STARTUP_EQUITY_FUNDING, STARTUP_EQUITY_FUNDING_PATH, 1);
  36. addRangeAggregation (exchange, STARTUP_NON_EQUITY_FUNDING, STARTUP_NON_EQUITY_FUNDING_PATH, 1);
  37. addTermsAggregation (exchange, STARTUP_CATEGORIES, STARTUP_CATEGORY_PATH + ".raw", 0);
  38. // addAggregation ("top500", "startup.specific_information.top500", 0, "terms", exchange);
  39. aggregations.add(globalAggregation(globalAggregations));
  40.  
  41. exchange.setProperty(ElasticsearchConstants.ELASTIC_AGGREGATIONS, aggregations);
  42.  
  43. }
  44.  
  45.  
  46. public void configure() {
  47.  
  48. fromDirect("aggregate.startup")
  49. .log("Get aggregations of startup")
  50. .setProperty(ElasticsearchConstants.ELASTIC_INDEX, constant(IndicesConstants.STARTUP_INDEX))
  51. .setProperty(ElasticsearchConstants.ELASTIC_TYPE, constant(TypesConstants.STARTUP_TYPE))
  52. .setProperty(ElasticsearchConstants.ELASTIC_SIZE, constant(0))
  53. .process(startupAggregator::addQuery)
  54. .to(direct("elastic.search"))
  55. .process(startupWrapper::wrapAggregations)
  56. ;
  57.  
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement