شمارش نتایج پرس و جو

شما می‌توانید قبل از ایجاد خروجی، از متد matters.count برای شمارش پیام‌های یک کوئری Gmail یا Google Groups استفاده کنید. از این اطلاعات برای اصلاح فیلترهای کوئری خود و بازگرداندن نتایج کمتر استفاده کنید.

برای کار با منابع Google Vault، یک حساب کاربری باید امتیازات لازم Vault و دسترسی به موضوع را داشته باشد. برای دسترسی به یک موضوع، یک حساب کاربری باید آن موضوع را ایجاد کرده باشد، موضوع را با آنها به اشتراک گذاشته باشد یا امتیاز مشاهده همه موضوعات را داشته باشد.

مثال زیر نحوه شمارش نتایج برگردانده شده توسط یک پرس و جو برای پیام‌هایی که معیارهای زیر را دارند را نشان می‌دهد:

  • پیام‌های متعلق به حساب‌های 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"]