Подсчет результатов запроса

Вы можете использовать метод matters.count для подсчета сообщений из запроса Gmail или групп перед созданием экспорта. Используя эту информацию, вы можете уточнить фильтры запросов, чтобы возвращать больше или меньше результатов.

Для работы с ресурсами Сейфа у учетной записи должны быть необходимые права Сейфа и доступ к делу. Чтобы получить доступ к делу, учетная запись должна создать дело, иметь к нему доступ к делу или иметь право просмотра всех дел .

В следующем примере показано, как подсчитать результаты, возвращаемые запросом для сообщений, соответствующих следующим критериям:

  • сообщения, принадлежащие учетным записям email1 и email2 .
  • исключает черновики сообщений.
  • сообщения отправляются на [email protected] .

Ява

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;
}
 

Питон

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"]