@Inject public EsEntityIndexImpl( final EsProvider provider, final IndexCache indexCache, final IndexFig indexFig, final MetricsFactory metricsFactory, final IndexLocationStrategy indexLocationStrategy ) { this.indexFig = indexFig; this.indexLocationStrategy = indexLocationStrategy; this.failureMonitor = new FailureMonitorImpl( indexFig, provider ); this.esProvider = provider; this.alias = indexLocationStrategy.getAlias(); this.aliasCache = indexCache; this.applicationScope = indexLocationStrategy.getApplicationScope(); this.cursorTimeout = indexFig.getQueryCursorTimeout(); this.queryTimeout = indexFig.getWriteTimeout(); this.searchRequest = new SearchRequestBuilderStrategy(esProvider, applicationScope, alias, cursorTimeout ); this.searchRequestBuilderStrategyV2 = new SearchRequestBuilderStrategyV2( esProvider, applicationScope, alias, cursorTimeout ); this.addTimer = metricsFactory.getTimer(EsEntityIndexImpl.class, "index.add"); this.updateAliasTimer = metricsFactory.getTimer(EsEntityIndexImpl.class, "index.update_alias"); this.mappingTimer = metricsFactory.getTimer(EsEntityIndexImpl.class, "index.create_mapping"); this.refreshIndexMeter = metricsFactory.getMeter(EsEntityIndexImpl.class, "index.refresh_index"); this.searchTimer = metricsFactory.getTimer(EsEntityIndexImpl.class, "search"); this.aggregationTimer = metricsFactory.getTimer( EsEntityIndexImpl.class, "aggregations" ); this.refreshTimer = metricsFactory.getTimer( EsEntityIndexImpl.class, "index.refresh" ); }