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 et email2 ;
  • 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"]