Class VitamElasticsearchRepository
- java.lang.Object
-
- fr.gouv.vitam.common.database.api.impl.VitamElasticsearchRepository
-
- All Implemented Interfaces:
VitamRepository
public class VitamElasticsearchRepository extends java.lang.Object implements VitamRepository
Implementation for Elasticsearch
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringIDENTIFIERIdentifier
-
Constructor Summary
Constructors Constructor Description VitamElasticsearchRepository(org.elasticsearch.client.RestHighLevelClient client, java.lang.String indexName, boolean indexByTenant)VitamElasticsearchRepository Constructor
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddelete(java.util.List<java.lang.String> ids, int tenant)Deleted all documents by idscom.mongodb.client.FindIterable<org.bson.Document>findByFieldsDocuments(java.util.Map<java.lang.String,java.lang.String> fields, int mongoBatchSize, java.lang.Integer tenant)Return iterable over document for the given collection for a specific tenant and fieldsjava.util.Optional<org.bson.Document>findByIdentifier(java.lang.String identifier)Find by identifier for collections cross tenantjava.util.Optional<org.bson.Document>findByIdentifierAndTenant(java.lang.String identifier, java.lang.Integer tenant)find by identifier for all tenantcom.mongodb.client.FindIterable<org.bson.Document>findDocuments(int mongoBatchSize)Return iterable over document for the given collectioncom.mongodb.client.FindIterable<org.bson.Document>findDocuments(int mongoBatchSize, java.lang.Integer tenant)Return iterable over document for the given collection for a specific tenantcom.mongodb.client.FindIterable<org.bson.Document>findDocuments(java.util.Collection<java.lang.String> ids, org.bson.conversions.Bson projection)Find collection of document by there id and return only projection fieldscom.mongodb.client.FindIterable<org.bson.Document>findDocuments(org.bson.conversions.Bson query, int mongoBatchSize)Return iterable over document for the given collectionjava.util.Optional<org.bson.Document>getByID(java.lang.String id, java.lang.Integer tenant)Get vitam document by idstatic longhandlePurge(org.elasticsearch.client.RestHighLevelClient client, java.lang.String index, org.elasticsearch.index.query.QueryBuilder qb)longpurge()Be careful when using this method Remove by tenant for collection cross-tenantlongpurge(java.lang.Integer tenant)Be careful when using this method Remove by tenant for collection multi-tenantvoidremove(java.lang.String id, java.lang.Integer tenant)Remove document by idlongremove(org.bson.conversions.Bson query)Be careful when using this method Remove by queryvoidremoveByNameAndTenant(java.lang.String name, java.lang.Integer tenant)Be careful when using this method Remove collection by name and tenantvoidsave(ElasticsearchCollections elasticsearchCollections, java.util.List<org.bson.Document> documents)voidsave(java.util.List<org.bson.Document> documents)Save a list of vitam documentsvoidsave(org.bson.Document document)Save vitam documentvoidsaveOrUpdate(java.util.List<org.bson.Document> documents)Save or update a list of vitam documentsVitamRepositoryStatussaveOrUpdate(org.bson.Document document)Save or updatevitam documentorg.elasticsearch.action.search.SearchResponsesearch(java.lang.String index, org.elasticsearch.index.query.QueryBuilder qb)voidupdate(java.util.List<com.mongodb.client.model.WriteModel<org.bson.Document>> updates)Used to execute a bulk update If document exists then update If document do not exists then create document throw Duplicate key exception if document exists by _id but not exists by filter in the update one model
-
-
-
Field Detail
-
IDENTIFIER
public static final java.lang.String IDENTIFIER
Identifier- See Also:
- Constant Field Values
-
-
Constructor Detail
-
VitamElasticsearchRepository
public VitamElasticsearchRepository(org.elasticsearch.client.RestHighLevelClient client, java.lang.String indexName, boolean indexByTenant)VitamElasticsearchRepository Constructor- Parameters:
client- the es clientindexName- the name of the indexindexByTenant- specifies if the index is for a specific tenant or not
-
-
Method Detail
-
save
public void save(org.bson.Document document) throws DatabaseExceptionDescription copied from interface:VitamRepositorySave vitam document- Specified by:
savein interfaceVitamRepository- Parameters:
document- the document to be saved- Throws:
DatabaseException- in case error with database occurs
-
saveOrUpdate
public VitamRepositoryStatus saveOrUpdate(org.bson.Document document) throws DatabaseException
Description copied from interface:VitamRepositorySave or updatevitam document- Specified by:
saveOrUpdatein interfaceVitamRepository- Parameters:
document- the document to be saved- Returns:
- status CREATED or UPDATED
- Throws:
DatabaseException- in case error with database occurs
-
save
public void save(java.util.List<org.bson.Document> documents) throws DatabaseExceptionDescription copied from interface:VitamRepositorySave a list of vitam documents- Specified by:
savein interfaceVitamRepository- Parameters:
documents- the list of documents to be saved- Throws:
DatabaseException- in case error with database occurs
-
save
public void save(ElasticsearchCollections elasticsearchCollections, java.util.List<org.bson.Document> documents) throws DatabaseException
- Throws:
DatabaseException
-
saveOrUpdate
public void saveOrUpdate(java.util.List<org.bson.Document> documents) throws DatabaseExceptionDescription copied from interface:VitamRepositorySave or update a list of vitam documents- Specified by:
saveOrUpdatein interfaceVitamRepository- Parameters:
documents- the list of document to be saved orupdated- Throws:
DatabaseException- in case error with database occurs
-
update
public void update(java.util.List<com.mongodb.client.model.WriteModel<org.bson.Document>> updates) throws DatabaseExceptionDescription copied from interface:VitamRepositoryUsed to execute a bulk update If document exists then update If document do not exists then create document throw Duplicate key exception if document exists by _id but not exists by filter in the update one model- Specified by:
updatein interfaceVitamRepository- Throws:
DatabaseException
-
findDocuments
public com.mongodb.client.FindIterable<org.bson.Document> findDocuments(java.util.Collection<java.lang.String> ids, org.bson.conversions.Bson projection)Description copied from interface:VitamRepositoryFind collection of document by there id and return only projection fields- Specified by:
findDocumentsin interfaceVitamRepository- Parameters:
ids- list of documents idprojection- the fields wanted in the result- Returns:
- An iterable of documents
-
remove
public void remove(java.lang.String id, java.lang.Integer tenant) throws DatabaseExceptionDescription copied from interface:VitamRepositoryRemove document by id- Specified by:
removein interfaceVitamRepository- Parameters:
id- the id of the document to be removedtenant- the tenant of the document to be removed- Throws:
DatabaseException- in case error with database occurs
-
remove
public long remove(org.bson.conversions.Bson query) throws DatabaseExceptionDescription copied from interface:VitamRepositoryBe careful when using this method Remove by query- Specified by:
removein interfaceVitamRepository- Throws:
DatabaseException
-
removeByNameAndTenant
public void removeByNameAndTenant(java.lang.String name, java.lang.Integer tenant) throws DatabaseExceptionDescription copied from interface:VitamRepositoryBe careful when using this method Remove collection by name and tenant- Specified by:
removeByNameAndTenantin interfaceVitamRepository- Parameters:
name- the name of the collection to be removedtenant- the tenant of the collection to be removed- Throws:
DatabaseException- in case error with database occurs
-
purge
public long purge(java.lang.Integer tenant) throws DatabaseExceptionDescription copied from interface:VitamRepositoryBe careful when using this method Remove by tenant for collection multi-tenant- Specified by:
purgein interfaceVitamRepository- Parameters:
tenant- the tenant- Returns:
- the number of deleted documents
- Throws:
DatabaseException- in case error with database occurs
-
handlePurge
public static long handlePurge(org.elasticsearch.client.RestHighLevelClient client, java.lang.String index, org.elasticsearch.index.query.QueryBuilder qb) throws DatabaseException- Throws:
DatabaseException
-
purge
public long purge() throws DatabaseExceptionDescription copied from interface:VitamRepositoryBe careful when using this method Remove by tenant for collection cross-tenant- Specified by:
purgein interfaceVitamRepository- Returns:
- number of purged documents
- Throws:
DatabaseException- in case error with database occurs
-
getByID
public java.util.Optional<org.bson.Document> getByID(java.lang.String id, java.lang.Integer tenant) throws DatabaseExceptionDescription copied from interface:VitamRepositoryGet vitam document by id- Specified by:
getByIDin interfaceVitamRepository- Parameters:
id- the document idtenant- the tenant of the document- Returns:
- the document if found
- Throws:
DatabaseException- in case error with database occurs
-
findByIdentifierAndTenant
public java.util.Optional<org.bson.Document> findByIdentifierAndTenant(java.lang.String identifier, java.lang.Integer tenant) throws DatabaseExceptionDescription copied from interface:VitamRepositoryfind by identifier for all tenant- Specified by:
findByIdentifierAndTenantin interfaceVitamRepository- Parameters:
identifier- the identifier of the documenttenant- the tenant of the document- Returns:
- the document if found
- Throws:
DatabaseException- in case error with database occurs
-
search
public org.elasticsearch.action.search.SearchResponse search(java.lang.String index, org.elasticsearch.index.query.QueryBuilder qb) throws java.io.IOException- Throws:
java.io.IOException
-
findByIdentifier
public java.util.Optional<org.bson.Document> findByIdentifier(java.lang.String identifier) throws DatabaseExceptionDescription copied from interface:VitamRepositoryFind by identifier for collections cross tenant- Specified by:
findByIdentifierin interfaceVitamRepository- Parameters:
identifier- the identifier of the document- Returns:
- the document if found
- Throws:
DatabaseException- in case error with database occurs
-
findByFieldsDocuments
public com.mongodb.client.FindIterable<org.bson.Document> findByFieldsDocuments(java.util.Map<java.lang.String,java.lang.String> fields, int mongoBatchSize, java.lang.Integer tenant)Description copied from interface:VitamRepositoryReturn iterable over document for the given collection for a specific tenant and fields- Specified by:
findByFieldsDocumentsin interfaceVitamRepository- Parameters:
fields- list of fields for filtermongoBatchSize- mongoBatchSizetenant- tenant id- Returns:
- iterable over document for the given collection
-
findDocuments
public com.mongodb.client.FindIterable<org.bson.Document> findDocuments(int mongoBatchSize, java.lang.Integer tenant)Description copied from interface:VitamRepositoryReturn iterable over document for the given collection for a specific tenant- Specified by:
findDocumentsin interfaceVitamRepository- Parameters:
mongoBatchSize- mongoBatchSizetenant- tenant id- Returns:
- iterable over document for the given collection
-
findDocuments
public com.mongodb.client.FindIterable<org.bson.Document> findDocuments(int mongoBatchSize)
Description copied from interface:VitamRepositoryReturn iterable over document for the given collection- Specified by:
findDocumentsin interfaceVitamRepository- Parameters:
mongoBatchSize- mongoBatchSize- Returns:
- iterable over document for the given collection
-
findDocuments
public com.mongodb.client.FindIterable<org.bson.Document> findDocuments(org.bson.conversions.Bson query, int mongoBatchSize)Description copied from interface:VitamRepositoryReturn iterable over document for the given collection- Specified by:
findDocumentsin interfaceVitamRepository- Parameters:
query- the mongo query to be executedmongoBatchSize- mongoBatchSize- Returns:
- iterable over document for the given collection
-
delete
public void delete(java.util.List<java.lang.String> ids, int tenant) throws DatabaseExceptionDescription copied from interface:VitamRepositoryDeleted all documents by ids- Specified by:
deletein interfaceVitamRepository- Throws:
DatabaseException
-
-