Compter les résultats de requête
Vous pouvez utiliser la méthode matters.count
pour compter les messages d'une requête Gmail ou Groupes avant de créer une exportation. Grâce à ces informations, vous pouvez affiner les filtres de votre requête pour obtenir plus ou moins de résultats.
Pour utiliser les ressources Vault, le compte doit disposer des droits Vault requis et avoir accès à l'objet. Pour accéder à un litige, le compte doit l'avoir créé, l'avoir partagé avec lui ou disposer du droit Afficher tous les litiges.
L'exemple suivant montre comment comptabiliser les résultats renvoyés par une requête pour les messages qui répondent aux critères suivants:
- messages appartenant aux comptes
email1
etemail2
; - exclut les brouillons.
- messages envoyés à
[email protected]
.
Java
public Long count(Vault client, String matterId) { AccountInfo emailsToSearch = new AccountInfo().setEmails(ImmutableList.of("email1", "email2")); MailOptions mailQueryOptions = new MailOptions().setExcludeDrafts(true); String queryTerms = "to:[email protected]"; Query query = new Query() .setCorpus("MAIL") .setDataScope("ALL_DATA") .setSearchMethod("ACCOUNT") .setAccountInfo(emailsToSearch) .setTerms(queryTerms); CountArtifactsRequest request = new CountArtifactsRequest().setQuery(query); Operation operation = client.matters().count(matterId, request).execute(); while(!operation.getDone()) { sleep(2000); operation = service.operations().get(operation.getName()).execute(); } if(operation.getResponse() != null) { return Long.parseLong(operation.getResponse.get("total_count").toString()); } return -1; }
Python
def count(service, matter_id): emails_to_search = ['email1', 'email2'] mail_query_options = {'excludeDrafts': True} query_terms = 'to:[email protected]' mail_query = { 'corpus': 'MAIL', 'dataScope': 'ALL_DATA', 'searchMethod': 'ACCOUNT', 'accountInfo': { 'emails': emails_to_search }, 'terms': query_terms, 'mailOptions': mail_query_options, } request = { 'query': mail_query } operation = service.matters().count(matterId=matter_id, body=request).execute() while not operation.getDone(): time.sleep(2) operation = service.operations().get(name=operation.getName()).execute() if operation.getResponse() is None: return -1 return operation.getResponse()["total_count"]