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

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

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

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

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