Sorgu sonuçlarını say

Dışa aktarma işlemi oluşturmadan önce Gmail veya Gruplar sorgusundaki iletileri saymak için matters.count yöntemini kullanabilirsiniz. Bu bilgilerle, sorgu filtrelerinizi daha fazla veya daha az sonuç döndürecek şekilde hassaslaştırabilirsiniz.

Hesabın Apps Kasası kaynaklarıyla çalışabilmesi için gerekli Apps Kasası ayrıcalıklarına sahip olması ve konuya erişebilmesi gerekir. Bir konuya erişmek için hesabın konuyu oluşturmuş, konunun kendisiyle paylaşılmış olması veya Tüm Konuları Görüntüleme ayrıcalığına sahip olması gerekir.

Aşağıdaki örnekte, şu ölçütleri karşılayan iletiler için bir sorgu tarafından döndürülen sonuçların nasıl sayılacağı gösterilmektedir:

  • email1 ve email2 hesaplarına ait iletiler.
  • taslak iletileri hariç tutar.
  • ceo@solarmora.com grubuna mesaj gönderildi.

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