@Override public <T> long count(SearchQuery searchQuery, Class<T> clazz) { String indexName[] = isNotEmpty(searchQuery.getIndices()) ? searchQuery.getIndices().toArray(new String[searchQuery.getIndices().size()]) : retrieveIndexNameFromPersistentEntity(clazz); String types[] = isNotEmpty(searchQuery.getTypes()) ? searchQuery.getTypes().toArray(new String[searchQuery.getTypes().size()]) : retrieveTypeFromPersistentEntity(clazz); Assert.notNull(indexName, "No index defined for Query"); CountRequestBuilder countRequestBuilder = client.prepareCount(indexName); if (types != null) { countRequestBuilder.setTypes(types); } if (searchQuery.getQuery() != null) { countRequestBuilder.setQuery(searchQuery.getQuery()); } return countRequestBuilder.execute().actionGet().getCount(); }