public abstract class AbstractElasticsearchTemplate extends Object implements ElasticsearchOperations, ApplicationContextAware
Modifier and Type | Class and Description |
---|---|
protected static interface |
AbstractElasticsearchTemplate.DocumentCallback<T> |
protected class |
AbstractElasticsearchTemplate.ReadDocumentCallback<T> |
protected class |
AbstractElasticsearchTemplate.ReadSearchDocumentResponseCallback<T> |
protected class |
AbstractElasticsearchTemplate.ReadSearchScrollDocumentResponseCallback<T> |
protected static interface |
AbstractElasticsearchTemplate.SearchDocumentResponseCallback<T> |
Modifier and Type | Field and Description |
---|---|
protected ElasticsearchConverter |
elasticsearchConverter |
protected org.springframework.data.elasticsearch.core.RequestFactory |
requestFactory |
Constructor and Description |
---|
AbstractElasticsearchTemplate() |
Modifier and Type | Method and Description |
---|---|
List<IndexedObjectInformation> |
bulkIndex(List<IndexQuery> queries,
BulkOptions bulkOptions,
Class<?> clazz)
Bulk index all objects.
|
List<IndexedObjectInformation> |
bulkIndex(List<IndexQuery> queries,
BulkOptions bulkOptions,
IndexCoordinates index)
Bulk index all objects.
|
List<IndexedObjectInformation> |
bulkIndex(List<IndexQuery> queries,
Class<?> clazz)
Bulk index all objects.
|
List<IndexedObjectInformation> |
bulkOperation(List<?> queries,
BulkOptions bulkOptions,
IndexCoordinates index) |
void |
bulkUpdate(List<UpdateQuery> queries,
Class<?> clazz)
Bulk update all objects.
|
protected List<IndexedObjectInformation> |
checkForBulkOperationFailure(org.elasticsearch.action.bulk.BulkResponse bulkResponse) |
long |
count(Query query,
Class<?> clazz)
return number of elements found by given query
|
protected ElasticsearchConverter |
createElasticsearchConverter() |
String |
delete(Object entity)
Deletes the given entity
|
String |
delete(Object entity,
IndexCoordinates index)
Deletes the given entity
|
void |
delete(Query query,
Class<?> clazz)
Delete all records matching the query.
|
String |
delete(String id,
Class<?> entityType)
Delete the one object with provided id.
|
abstract List<IndexedObjectInformation> |
doBulkOperation(List<?> queries,
BulkOptions bulkOptions,
IndexCoordinates index) |
protected abstract boolean |
doExists(String id,
IndexCoordinates index) |
abstract String |
doIndex(IndexQuery query,
IndexCoordinates indexCoordinates) |
boolean |
exists(String id,
Class<?> clazz)
Check if an entity with given id exists.
|
boolean |
exists(String id,
IndexCoordinates index)
Check if an entity with given id exists.
|
<T> T |
get(GetQuery query,
Class<T> clazz,
IndexCoordinates index)
Retrieves an object from an index.
|
<T> T |
get(String id,
Class<T> clazz)
Retrieves an object from the index specified in the entity's Document annotation.
|
protected abstract String |
getClusterVersion()
tries to extract the version of the Elasticsearch cluster
|
ElasticsearchConverter |
getElasticsearchConverter() |
String |
getEntityRouting(Object entity)
gets the routing for an entity which might be defined by a join-type relation
|
IndexCoordinates |
getIndexCoordinatesFor(Class<?> clazz) |
protected abstract org.elasticsearch.action.search.MultiSearchResponse.Item[] |
getMultiSearchResult(org.elasticsearch.action.search.MultiSearchRequest request) |
org.springframework.data.elasticsearch.core.RequestFactory |
getRequestFactory() |
String |
index(IndexQuery query,
IndexCoordinates index)
Index an object.
|
protected void |
initialize(ElasticsearchConverter elasticsearchConverter) |
protected <T> T |
maybeCallbackAfterConvert(T entity,
Document document,
IndexCoordinates index) |
protected <T> T |
maybeCallbackAfterSave(T entity,
IndexCoordinates index) |
protected void |
maybeCallbackAfterSaveWithQueries(List<?> queries,
IndexCoordinates index) |
protected void |
maybeCallbackAfterSaveWithQuery(Object query,
IndexCoordinates index) |
protected <T> T |
maybeCallbackBeforeConvert(T entity,
IndexCoordinates index) |
protected void |
maybeCallbackBeforeConvertWithQueries(List<?> queries,
IndexCoordinates index) |
protected void |
maybeCallbackBeforeConvertWithQuery(Object query,
IndexCoordinates index) |
<T> List<T> |
multiGet(Query query,
Class<T> clazz)
Execute a multiGet against elasticsearch for the given ids.
|
<T> List<SearchHits<T>> |
multiSearch(List<? extends Query> queries,
Class<T> clazz)
Execute the multi search query against elasticsearch and return result as
List of SearchHits . |
<T> List<SearchHits<T>> |
multiSearch(List<? extends Query> queries,
Class<T> clazz,
IndexCoordinates index)
Execute the multi search query against elasticsearch and return result as
List of SearchHits . |
List<SearchHits<?>> |
multiSearch(List<? extends Query> queries,
List<Class<?>> classes)
Execute the multi search query against elasticsearch and return result as
List of SearchHits . |
List<SearchHits<?>> |
multiSearch(List<? extends Query> queries,
List<Class<?>> classes,
IndexCoordinates index)
Execute the multi search query against elasticsearch and return result as
List of SearchHits . |
<T> T |
queryForObject(GetQuery query,
Class<T> clazz)
Retrieves an object from an index.
|
<T> Iterable<T> |
save(Iterable<T> entities)
saves the given entities to the index retrieved from the entities' Document annotation
|
<T> Iterable<T> |
save(Iterable<T> entities,
IndexCoordinates index)
saves the given entities to the given index
|
<T> Iterable<T> |
save(T... entities)
saves the given entities to the index retrieved from the entities' Document annotation
|
<T> T |
save(T entity)
Saves an entity to the index specified in the entity's Document annotation
|
<T> T |
save(T entity,
IndexCoordinates index)
Saves an entity to the index specified in the entity's Document annotation
|
<T> SearchHits<T> |
search(MoreLikeThisQuery query,
Class<T> clazz)
more like this query to search for documents that are "like" a specific document.
|
<T> SearchHits<T> |
search(MoreLikeThisQuery query,
Class<T> clazz,
IndexCoordinates index)
more like this query to search for documents that are "like" a specific document.
|
<T> SearchHits<T> |
search(Query query,
Class<T> clazz)
Execute the criteria query against elasticsearch and return result as
SearchHits |
<T> SearchHitsIterator<T> |
searchForStream(Query query,
Class<T> clazz)
Executes the given
Query against elasticsearch and return result as SearchHitsIterator . |
<T> SearchHitsIterator<T> |
searchForStream(Query query,
Class<T> clazz,
IndexCoordinates index)
Executes the given
Query against elasticsearch and return result as SearchHitsIterator . |
protected abstract void |
searchScrollClear(List<String> scrollIds) |
protected void |
searchScrollClear(String scrollId) |
protected abstract <T> SearchScrollHits<T> |
searchScrollContinue(String scrollId,
long scrollTimeInMillis,
Class<T> clazz,
IndexCoordinates index) |
protected abstract <T> SearchScrollHits<T> |
searchScrollStart(long scrollTimeInMillis,
Query query,
Class<T> clazz,
IndexCoordinates index) |
void |
setApplicationContext(ApplicationContext applicationContext) |
void |
setEntityCallbacks(EntityCallbacks entityCallbacks)
|
<T> CloseableIterator<T> |
stream(Query query,
Class<T> clazz,
IndexCoordinates index)
Executes the given
Query against elasticsearch and return result as CloseableIterator . |
org.elasticsearch.action.search.SearchResponse |
suggest(org.elasticsearch.search.suggest.SuggestBuilder suggestion,
Class<?> clazz)
Does a suggest query
|
protected static String[] |
toArray(List<String> values) |
protected void |
updateIndexedObject(Object entity,
IndexedObjectInformation indexedObjectInformation) |
protected void |
updateIndexedObjectsWithQueries(List<?> queries,
List<IndexedObjectInformation> indexedObjectInformations) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addAlias, createIndex, createIndex, createIndex, createIndex, deleteIndex, deleteIndex, deleteIndex, getDocument, getMapping, getMapping, getSetting, getSetting, getSettings, getSettings, indexExists, indexExists, indexOps, indexOps, putMapping, putMapping, putMapping, putMapping, queryForAlias, refresh, refresh, removeAlias, stringIdRepresentation
bulkIndex, bulkUpdate, bulkUpdate, delete, delete, delete, delete, get, multiGet, update
count, count, moreLikeThis, queryForIds, queryForList, queryForList, queryForList, queryForObject, queryForPage, queryForPage, queryForPage, search, searchOne, searchOne, suggest
@Nullable protected ElasticsearchConverter elasticsearchConverter
@Nullable protected org.springframework.data.elasticsearch.core.RequestFactory requestFactory
protected void initialize(ElasticsearchConverter elasticsearchConverter)
protected ElasticsearchConverter createElasticsearchConverter()
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException
setApplicationContext
in interface ApplicationContextAware
BeansException
public void setEntityCallbacks(EntityCallbacks entityCallbacks)
EntityCallbacks
instance to use when invoking callbacks
like the
BeforeConvertCallback
.
Overrides potentially existing EntityCallbacks
.entityCallbacks
- must not be null.IllegalArgumentException
- if the given instance is null.public <T> T save(T entity)
DocumentOperations
save
in interface DocumentOperations
T
- the entity typeentity
- the entity to save, must not be nullpublic <T> T save(T entity, IndexCoordinates index)
DocumentOperations
save
in interface DocumentOperations
T
- the entity typeentity
- the entity to save, must not be nullindex
- the index to save the entity in, must not be nullpublic <T> Iterable<T> save(Iterable<T> entities)
DocumentOperations
save
in interface DocumentOperations
T
- the entity typeentities
- must not be nullpublic <T> Iterable<T> save(Iterable<T> entities, IndexCoordinates index)
DocumentOperations
save
in interface DocumentOperations
T
- the entity typeentities
- must not be nullindex
- the index to save the entities in, must not be nullpublic <T> Iterable<T> save(T... entities)
DocumentOperations
save
in interface DocumentOperations
T
- the entity typeentities
- must not be nullpublic String index(IndexQuery query, IndexCoordinates index)
DocumentOperations
index
in interface DocumentOperations
query
- the query defining the objectindex
- the index where the object is stored.public abstract String doIndex(IndexQuery query, IndexCoordinates indexCoordinates)
@Nullable public <T> T get(String id, Class<T> clazz)
DocumentOperations
get
in interface DocumentOperations
T
- the entity typeid
- the id of the objectclazz
- the entity class,@Nullable public <T> T get(GetQuery query, Class<T> clazz, IndexCoordinates index)
DocumentOperations
get
in interface DocumentOperations
query
- the query defining the id of the object to getclazz
- the type of the object to be returnedindex
- the index from which the object is read.public <T> List<T> multiGet(Query query, Class<T> clazz)
DocumentOperations
multiGet
in interface DocumentOperations
query
- the query defining the ids of the objects to getclazz
- the type of the object to be returned@Nullable public <T> T queryForObject(GetQuery query, Class<T> clazz)
DocumentOperations
queryForObject
in interface DocumentOperations
query
- the query defining the id of the object to getclazz
- the type of the object to be returnedpublic boolean exists(String id, Class<?> clazz)
DocumentOperations
exists
in interface DocumentOperations
id
- the _id of the document to look for.clazz
- the domain type used.public boolean exists(String id, IndexCoordinates index)
DocumentOperations
exists
in interface DocumentOperations
id
- the _id of the document to look for.index
- the target index, must not be nullprotected abstract boolean doExists(String id, IndexCoordinates index)
public String delete(String id, Class<?> entityType)
DocumentOperations
delete
in interface DocumentOperations
id
- the document ot deleteentityType
- must not be null.public void delete(Query query, Class<?> clazz)
DocumentOperations
delete
in interface DocumentOperations
query
- query defining the objectsclazz
- The entity class, must be annotated with
Document
public String delete(Object entity)
DocumentOperations
delete
in interface DocumentOperations
entity
- the entity to deletepublic String delete(Object entity, IndexCoordinates index)
DocumentOperations
delete
in interface DocumentOperations
entity
- the entity to deleteindex
- the index from which to deletepublic List<IndexedObjectInformation> bulkIndex(List<IndexQuery> queries, Class<?> clazz)
DocumentOperations
bulkIndex
in interface DocumentOperations
queries
- the queries to execute in bulkclazz
- the entity classpublic List<IndexedObjectInformation> bulkIndex(List<IndexQuery> queries, BulkOptions bulkOptions, Class<?> clazz)
DocumentOperations
bulkIndex
in interface DocumentOperations
queries
- the queries to execute in bulkbulkOptions
- options to be added to the bulk requestclazz
- the entity classpublic final List<IndexedObjectInformation> bulkIndex(List<IndexQuery> queries, BulkOptions bulkOptions, IndexCoordinates index)
DocumentOperations
bulkIndex
in interface DocumentOperations
queries
- the queries to execute in bulkbulkOptions
- options to be added to the bulk requestpublic void bulkUpdate(List<UpdateQuery> queries, Class<?> clazz)
DocumentOperations
bulkUpdate
in interface DocumentOperations
queries
- the queries to execute in bulkclazz
- the entity classpublic List<IndexedObjectInformation> bulkOperation(List<?> queries, BulkOptions bulkOptions, IndexCoordinates index)
public abstract List<IndexedObjectInformation> doBulkOperation(List<?> queries, BulkOptions bulkOptions, IndexCoordinates index)
public long count(Query query, Class<?> clazz)
SearchOperations
count
in interface SearchOperations
query
- the query to executeclazz
- the entity clazz used for property mapping and index name extractionpublic <T> CloseableIterator<T> stream(Query query, Class<T> clazz, IndexCoordinates index)
SearchOperations
Query
against elasticsearch and return result as CloseableIterator
.
stream
in interface SearchOperations
T
- element return typequery
- the query to executeclazz
- the entity clazz used for property mappingindex
- the index to run the query againstCloseableIterator
that wraps an Elasticsearch scroll context that needs to be closed. The
try-with-resources construct should be used to ensure that the close method is invoked after the operations
are completed.public <T> SearchHitsIterator<T> searchForStream(Query query, Class<T> clazz)
SearchOperations
Query
against elasticsearch and return result as SearchHitsIterator
.
searchForStream
in interface SearchOperations
T
- element return typequery
- the query to executeclazz
- the entity clazz used for property mapping and index name extractionSearchHitsIterator
that wraps an Elasticsearch scroll context that needs to be closed. The
try-with-resources construct should be used to ensure that the close method is invoked after the operations
are completed.public <T> SearchHitsIterator<T> searchForStream(Query query, Class<T> clazz, IndexCoordinates index)
SearchOperations
Query
against elasticsearch and return result as SearchHitsIterator
.
searchForStream
in interface SearchOperations
T
- element return typequery
- the query to executeclazz
- the entity clazz used for property mappingindex
- the index to run the query againstSearchHitsIterator
that wraps an Elasticsearch scroll context that needs to be closed. The
try-with-resources construct should be used to ensure that the close method is invoked after the operations
are completed.public <T> SearchHits<T> search(MoreLikeThisQuery query, Class<T> clazz)
SearchOperations
search
in interface SearchOperations
T
- element return typequery
- the query to executeclazz
- the entity clazz used for property mapping and index name extractionpublic <T> SearchHits<T> search(MoreLikeThisQuery query, Class<T> clazz, IndexCoordinates index)
SearchOperations
search
in interface SearchOperations
T
- element return typequery
- the query to executeclazz
- the entity clazz used for property mappingindex
- the index to run the query againstpublic <T> List<SearchHits<T>> multiSearch(List<? extends Query> queries, Class<T> clazz)
SearchOperations
List
of SearchHits
.multiSearch
in interface SearchOperations
T
- element return typequeries
- the queries to executeclazz
- the entity clazzpublic <T> List<SearchHits<T>> multiSearch(List<? extends Query> queries, Class<T> clazz, IndexCoordinates index)
SearchOperations
List
of SearchHits
.multiSearch
in interface SearchOperations
T
- element return typequeries
- the queries to executeclazz
- the entity clazz used for property mappingindex
- the index to run the query againstpublic List<SearchHits<?>> multiSearch(List<? extends Query> queries, List<Class<?>> classes)
SearchOperations
List
of SearchHits
.multiSearch
in interface SearchOperations
queries
- the queries to executeclasses
- the entity classespublic List<SearchHits<?>> multiSearch(List<? extends Query> queries, List<Class<?>> classes, IndexCoordinates index)
SearchOperations
List
of SearchHits
.multiSearch
in interface SearchOperations
queries
- the queries to executeclasses
- the entity classes used for property mappingindex
- the index to run the query againstpublic <T> SearchHits<T> search(Query query, Class<T> clazz)
SearchOperations
SearchHits
search
in interface SearchOperations
T
- element return typequery
- the query to executeclazz
- the entity clazz used for property mapping and index name extractionprotected abstract <T> SearchScrollHits<T> searchScrollStart(long scrollTimeInMillis, Query query, Class<T> clazz, IndexCoordinates index)
protected abstract <T> SearchScrollHits<T> searchScrollContinue(@Nullable String scrollId, long scrollTimeInMillis, Class<T> clazz, IndexCoordinates index)
protected void searchScrollClear(String scrollId)
protected abstract org.elasticsearch.action.search.MultiSearchResponse.Item[] getMultiSearchResult(org.elasticsearch.action.search.MultiSearchRequest request)
public org.elasticsearch.action.search.SearchResponse suggest(org.elasticsearch.search.suggest.SuggestBuilder suggestion, Class<?> clazz)
SearchOperations
suggest
in interface SearchOperations
suggestion
- the querypublic ElasticsearchConverter getElasticsearchConverter()
getElasticsearchConverter
in interface ElasticsearchOperations
public org.springframework.data.elasticsearch.core.RequestFactory getRequestFactory()
public IndexCoordinates getIndexCoordinatesFor(Class<?> clazz)
getIndexCoordinatesFor
in interface ElasticsearchOperations
clazz
- the entity classprotected List<IndexedObjectInformation> checkForBulkOperationFailure(org.elasticsearch.action.bulk.BulkResponse bulkResponse)
bulkResponse
- protected void updateIndexedObject(Object entity, IndexedObjectInformation indexedObjectInformation)
@Nullable public String getEntityRouting(Object entity)
ElasticsearchOperations
getEntityRouting
in interface ElasticsearchOperations
entity
- the entity@Nullable protected abstract String getClusterVersion()
protected <T> T maybeCallbackBeforeConvert(T entity, IndexCoordinates index)
protected void maybeCallbackBeforeConvertWithQuery(Object query, IndexCoordinates index)
protected void maybeCallbackBeforeConvertWithQueries(List<?> queries, IndexCoordinates index)
protected <T> T maybeCallbackAfterSave(T entity, IndexCoordinates index)
protected void maybeCallbackAfterSaveWithQuery(Object query, IndexCoordinates index)
protected void maybeCallbackAfterSaveWithQueries(List<?> queries, IndexCoordinates index)
protected <T> T maybeCallbackAfterConvert(T entity, Document document, IndexCoordinates index)
protected void updateIndexedObjectsWithQueries(List<?> queries, List<IndexedObjectInformation> indexedObjectInformations)
Copyright © 2011–2021 Pivotal Software, Inc.. All rights reserved.