احتساب نتائج طلبات البحث

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

للعمل مع موارد Vault، يجب أن يكون لدى الحساب امتيازات Vault المطلوبة وإمكانية الوصول إلى المادة. للوصول إلى مسألة قانونية، يجب أن يكون الحساب قد أنشأها أو تمت مشاركتها معه أو أن يكون لديه امتياز عرض جميع المسائل القانونية.

يوضّح المثال التالي كيفية احتساب النتائج التي يعرضها طلب بحث عن الرسائل التي تستوفي المعايير التالية:

  • الرسائل المملوكة للحسابَين email1 وemail2
  • استبعاد مسودات الرسائل
  • الرسائل المُرسَلة إلى [email protected]

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:[email protected]";
  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:[email protected]'
  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"]