private boolean determineQueryTranslatorPresent() { try ( ServiceReference<LuceneQueryTranslator> translator = getServiceManager().requestReference( LuceneQueryTranslator.class ) ) { return true; } catch (Exception e) { // Ignore return false; } }
private boolean determineQueryTranslatorPresent() { try (ServiceReference<LuceneQueryTranslator> translator = getServiceManager().requestReference( LuceneQueryTranslator.class )) { return true; } catch (Exception e) { // Ignore return false; } }
private LuceneAnalysisDefinitionProvider getLuceneAnalyzerDefinitionProvider() { // Uses a Service so that integrators can inject alternative Lucene Analyzer definition providers try ( ServiceReference<LuceneAnalysisDefinitionSourceService> serviceRef = serviceManager.requestReference( LuceneAnalysisDefinitionSourceService.class ) ) { return serviceRef.get().getLuceneAnalyzerDefinitionProvider(); } }
@Override public void initializeReferences(Collection<AnalyzerReference> analyzerReferences, Map<String, AnalyzerDef> mappingAnalyzerDefinitions, Collection<AnalyzerReference> normalizerReferences, Map<String, NormalizerDef> mappingNormalizerDefinitions) { try ( ServiceReference<ElasticsearchAnalyzerDefinitionTranslator> translatorReference = serviceManager.requestReference( ElasticsearchAnalyzerDefinitionTranslator.class ) ) { ElasticsearchAnalyzerDefinitionTranslator translator = translatorReference.get(); // First, create a registry containing all relevant definitions ElasticsearchAnalysisDefinitionRegistry definitionRegistry = createDefinitionRegistry( analyzerReferences, mappingAnalyzerDefinitions, normalizerReferences, mappingNormalizerDefinitions, defaultDefinitionRegistry, translator ); // When all definitions are known and translated, actually initialize the references Stream.concat( analyzerReferences.stream(), normalizerReferences.stream() ) .map( this::getUninitializedReference ) .filter( Objects::nonNull ) .forEach( r -> r.initialize( definitionRegistry, translator ) ); } }
@Override public void setSearchFactory(ExtendedSearchIntegrator boundSearchIntegrator) { this.searchIntegrator = boundSearchIntegrator; this.clientReference = searchIntegrator.getServiceManager().requestReference( JestClient.class ); initializeIndex(); }
private LuceneAnalysisDefinitionProvider getLuceneAnalyzerDefinitionProvider() { // Uses a Service so that integrators can inject alternative Lucene Analyzer definition providers try ( ServiceReference<LuceneAnalysisDefinitionSourceService> serviceRef = serviceManager.requestReference( LuceneAnalysisDefinitionSourceService.class ) ) { return serviceRef.get().getLuceneAnalyzerDefinitionProvider(); } }
@Override public void initializeReferences(Collection<AnalyzerReference> analyzerReferences, Map<String, AnalyzerDef> mappingAnalyzerDefinitions, Collection<AnalyzerReference> normalizerReferences, Map<String, NormalizerDef> mappingNormalizerDefinitions) { try ( ServiceReference<ElasticsearchAnalyzerDefinitionTranslator> translatorReference = serviceManager.requestReference( ElasticsearchAnalyzerDefinitionTranslator.class ) ) { ElasticsearchAnalyzerDefinitionTranslator translator = translatorReference.get(); // First, create a registry containing all relevant definitions ElasticsearchAnalysisDefinitionRegistry definitionRegistry = createDefinitionRegistry( analyzerReferences, mappingAnalyzerDefinitions, normalizerReferences, mappingNormalizerDefinitions, defaultDefinitionRegistry, translator ); // When all definitions are known and translated, actually initialize the references Stream.concat( analyzerReferences.stream(), normalizerReferences.stream() ) .map( this::getUninitializedReference ) .filter( Objects::nonNull ) .forEach( r -> r.initialize( definitionRegistry, translator ) ); } }
@Override protected QueueConnectionFactory initializeJMSQueueConnectionFactory(Properties properties) { final String jmsConnectionFactoryName = properties.getProperty( JMS_CONNECTION_FACTORY ); try ( ServiceReference<NamedResolver> requestReference = getServiceManager().requestReference( NamedResolver.class ) ) { Object located = requestReference.get().locate( jmsConnectionFactoryName ); return (QueueConnectionFactory) located; } catch (RuntimeException e) { throw log.jmsQueueFactoryLookupException( jmsConnectionFactoryName, getIndexName(), e ); } }
@Override protected QueueConnectionFactory initializeJMSQueueConnectionFactory(Properties properties) { final String jmsConnectionFactoryName = properties.getProperty( JMS_CONNECTION_FACTORY ); try ( ServiceReference<NamedResolver> requestReference = getServiceManager().requestReference( NamedResolver.class ) ) { Object located = requestReference.get().locate( jmsConnectionFactoryName ); return (QueueConnectionFactory) located; } catch (RuntimeException e) { throw log.jmsQueueFactoryLookupException( jmsConnectionFactoryName, getIndexName(), e ); } }
SearchResult runSearch() { try ( ServiceReference<JestClient> client = getExtendedSearchIntegrator().getServiceManager().requestReference( JestClient.class ) ) { return client.get().executeRequest( search ); } }
private ServiceReference<LuceneWorkSerializer> extractSerializer() { return searchFactoryHolder.getSearchFactory() .getServiceManager() .requestReference( LuceneWorkSerializer.class ); }
private QueryDescriptor createQueryDescriptor(Query luceneQuery, IndexedTypeSet entityTypes) { QueryDescriptor descriptor = null; if ( queryTranslatorPresent ) { try ( ServiceReference<LuceneQueryTranslator> translator = getServiceManager().requestReference( LuceneQueryTranslator.class ) ) { if ( translator.get().conversionRequired( entityTypes ) ) { descriptor = translator.get().convertLuceneQuery( luceneQuery ); } } } if ( descriptor == null ) { descriptor = new LuceneQueryDescriptor( luceneQuery ); } return descriptor; }
@Override protected Queue initializeJMSQueue(QueueConnectionFactory factory, Properties properties) { try ( ServiceReference<NamedResolver> requestReference = getServiceManager().requestReference( NamedResolver.class ) ) { Object located = requestReference.get().locate( getJmsQueueName() ); return (Queue) located; } catch (RuntimeException e) { throw log.jmsQueueLookupException( getJmsQueueName(), getIndexName(), e ); } }
private QueryDescriptor createQueryDescriptor(Query luceneQuery, IndexedTypeSet entityTypes) { QueryDescriptor descriptor = null; if ( queryTranslatorPresent ) { try (ServiceReference<LuceneQueryTranslator> translator = getServiceManager().requestReference( LuceneQueryTranslator.class )) { if ( translator.get().conversionRequired( entityTypes ) ) { descriptor = translator.get().convertLuceneQuery( luceneQuery ); } } } if ( descriptor == null ) { descriptor = new LuceneQueryDescriptor( luceneQuery ); } return descriptor; }
@Override protected Queue initializeJMSQueue(QueueConnectionFactory factory, Properties properties) { try ( ServiceReference<NamedResolver> requestReference = getServiceManager().requestReference( NamedResolver.class ) ) { Object located = requestReference.get().locate( getJmsQueueName() ); return (Queue) located; } catch (RuntimeException e) { throw log.jmsQueueLookupException( getJmsQueueName(), getIndexName(), e ); } }
@Override public void initialize(String indexName, Properties properties, Similarity similarity, WorkerBuildContext context) { this.serviceManager = context.getServiceManager(); this.indexName = getIndexName( indexName, properties ); try ( ServiceReference<ConfigurationPropertiesProvider> propertiesProvider = serviceManager.requestReference( ConfigurationPropertiesProvider.class ) ) { this.indexManagementStrategy = getIndexManagementStrategy( propertiesProvider.get().getProperties() ); this.indexManagementWaitTimeout = getIndexManagementWaitTimeout( propertiesProvider.get().getProperties() ); } this.actualIndexName = IndexNameNormalizer.getElasticsearchIndexName( this.indexName ); this.similarity = similarity; this.backend = BackendFactory.createBackend( this, context, properties ); }
private boolean isJGroupsMaster(TestResourceManager manager) { ExtendedSearchIntegrator integrator = manager.getExtendedSearchIntegrator(); try ( ServiceReference<NodeSelectorService> service = integrator.getServiceManager().requestReference( NodeSelectorService.class ) ) { NodeSelectorStrategy nodeSelector = service.get().getMasterNodeSelector( TShirt.INDEX_NAME ); return nodeSelector.isIndexOwnerLocal(); } }
@Override public int getNumberOfDocumentsInIndex(String indexName) { ServiceManager serviceManager = resourceManager.getExtendedSearchIntegrator().getServiceManager(); try ( ServiceReference<ElasticsearchService> esService = serviceManager.requestReference( ElasticsearchService.class ) ) { CountWork work = new CountWork.Builder( ElasticsearchIndexNameNormalizer.getElasticsearchIndexName( indexName ) ) .build(); return esService.get().getWorkProcessor().executeSyncUnsafe( work ); } }
@Override public int getNumberOfDocumentsInIndex(IndexedTypeIdentifier entityType) { ServiceManager serviceManager = resourceManager.getExtendedSearchIntegrator().getServiceManager(); Set<IndexManager> indexManagers = resourceManager.getExtendedSearchIntegrator() .getIndexBinding( entityType ) .getIndexManagerSelector().all(); List<URLEncodedString> indexNames = new ArrayList<>( indexManagers.size() ); for ( IndexManager indexManager : indexManagers ) { indexNames.add( URLEncodedString.fromString( ( (ElasticsearchIndexManager)indexManager ).getActualIndexName() ) ); } try ( ServiceReference<ElasticsearchService> esService = serviceManager.requestReference( ElasticsearchService.class ) ) { CountWork work = new CountWork.Builder( indexNames ) .type( URLEncodedString.fromString( entityType.getName() ) ) .build(); return esService.get().getWorkProcessor().executeSyncUnsafe( work ); } }
@Override public int getNumberOfDocumentsInIndexByQuery(String indexName, String fieldName, String value) { ServiceManager serviceManager = resourceManager.getExtendedSearchIntegrator().getServiceManager(); String query = value.contains( "*" ) ? "wildcard" : "term"; try ( ServiceReference<ElasticsearchService> esService = serviceManager.requestReference( ElasticsearchService.class ) ) { CountWork work = new CountWork.Builder( ElasticsearchIndexNameNormalizer.getElasticsearchIndexName( indexName ) ) .query( JsonBuilder.object() .add( "query", JsonBuilder.object() .add( query, JsonBuilder.object() .addProperty( fieldName, value ) ) ).build() ) .build(); return esService.get().getWorkProcessor().executeSyncUnsafe( work ); } }