Compter les résultats de la requête

Vous pouvez utiliser la méthode matters.count pour comptabiliser les messages d'une requête Gmail ou Groupes avant de créer une exportation. Grâce à ces informations, vous pouvez affiner vos filtres de requête afin de renvoyer plus ou moins de résultats.

Pour utiliser des ressources Vault, le compte doit disposer des droits Vault et d'un accès au litige. Pour pouvoir accéder à un litige, le compte concerné doit avoir créé ce litige, l'avoir partagé avec lui ou disposer du droit Afficher tous les litiges.

L'exemple suivant montre comment compter 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 à ceo@solarmora.com.

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:ceo@solarmora.com";
  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:ceo@solarmora.com'
  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"]