@Override public int getNumberOfDocumentsInIndexByQuery(String indexName, String fieldName, String value) { IndexReaderAccessor indexReaderAccessor = resourceManager.getExtendedSearchIntegrator().getIndexReaderAccessor(); Term term = new Term( fieldName, value ); Query query = value.contains( "*" ) ? new WildcardQuery( term ) : new TermQuery( term ); try ( IndexReader reader = indexReaderAccessor.open( indexName ) ) { IndexSearcher searcher = new IndexSearcher( reader ); TopDocs topDocs = searcher.search( query, 100 ); return topDocs.totalHits; } catch (IOException e) { throw new RuntimeException( e ); } } }
public Directory getDirectory(IndexedTypeIdentifier entityType) { ExtendedSearchIntegrator integrator = resourceManager.getExtendedSearchIntegrator(); Set<IndexManager> indexManagers = integrator.getIndexBinding( entityType ).getIndexManagerSelector().all(); DirectoryBasedIndexManager indexManager = (DirectoryBasedIndexManager) indexManagers.iterator().next(); return indexManager.getDirectoryProvider().getDirectory(); }
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(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 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 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 ); } }