إحصاء نتائج طلب البحث

يمكنك استخدام طريقة matters.count لاحتساب عدد الرسائل من طلب بحث في Gmail أو "مجموعات Google" قبل إنشاء عملية تصدير. استخدِم هذه المعلومات لتحسين فلاتر طلب البحث وعرض عدد أقل من النتائج.

للعمل باستخدام موارد 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;
}
 

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