ספירת תוצאות של שאילתות

אפשר להשתמש בשיטה matters.count כדי לספור את ההודעות משאילתה ב-Gmail או בקבוצות Google לפני שיוצרים ייצוא. אפשר להשתמש במידע הזה כדי לשנות את המסננים של השאילתה ולקבל פחות תוצאות.

כדי לעבוד עם משאבים ב-Google Vault, לחשבון צריכות להיות הרשאות Vault הנדרשות וגישה לעניין. כדי לגשת לתיק, החשבון צריך ליצור את התיק, לקבל שיתוף של התיק או לקבל את ההרשאה View All Matters.

בדוגמה הבאה אפשר לראות איך סופרים את התוצאות שמוחזרות משאילתה לגבי הודעות שעומדות בקריטריונים הבאים:

  • הודעות בבעלות החשבונות email1 ו-email2.
  • לא כולל טיוטות של הודעות.
  • הודעות שנשלחו אל ceo@solarmora.com.

Java

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

Python

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