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

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

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

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

  • сообщения, принадлежащие учетным записям email1 и email2 .
  • исключает черновики сообщений.
  • сообщения отправляются на адрес ceo@solarmora.com .

Джава

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

Питон

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