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

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

برای کار با منابع 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"]