إدارة طلبات البحث المحفوظة

تتيح لك واجهة برمجة التطبيقات Saved Query API إدارة طلبات البحث المحفوظة في Vault آليًا. يمكنك تشغيل طلب بحث محفوظ لاسترداد النتائج نفسها أو نتائج إضافية وأحدث، وذلك استنادًا إلى معايير طلب البحث. على سبيل المثال، إذا كان طلب البحث يتضمن تاريخ انتهاء، ستسترجع النتائج نفسها التي ظهرت عند تشغيل طلب البحث لأول مرة. وإذا لم يتضمّن طلب البحث تاريخ انتهاء، ستظهر لك النتائج الأصلية بالإضافة إلى أي بيانات جديدة تستوفي معايير البحث.

يمكنك استخدام واجهة برمجة التطبيقات هذه في النصوص البرمجية التي:

  • إنشاء طلب بحث محفوظ في مسألة قانونية
  • حذف طلب بحث محفوظ من طلب
  • استرداد طلب بحث محفوظ من مسألة قانونية
  • استرداد جميع طلبات البحث المحفوظة من مسألة قانونية

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

إنشاء طلب بحث محفوظ

توضِّح الأمثلة التالية كيفية إنشاء طلبات بحث محفوظة لرسائل البريد والملفات في Drive:

البريد

Java

public SavedQuery createMailAllDataAccountSavedQuery(String matterId) throws Exception {
    AccountInfo emailsToSearch =
        new AccountInfo().setEmails((ImmutableList.of("email1", "email2")));
    MailOptions mailOptions = new MailOptions().setExcludeDrafts(true);
    String queryTerms = "to:ceo@solarmora.com";
    Query mailQuery =
        new Query()
            .setCorpus("MAIL")
            .setDataScope("ALL_DATA")
            .setSearchMethod("ACCOUNT")
            .setAccountInfo(emailsToSearch)
            .setTerms(queryTerms)
            .setMailOptions(mailOptions);
    SavedQuery savedQuery =
        new SavedQuery()
            .setDisplayName("NEW SAVED QUERY NAME")
            .setQuery(mailQuery);
    return client.matters().savedQueries().create(matterId, savedQuery).execute();
} 

Python

def create_mail_all_data_account_saved_query(self, 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,
    }
    saved_query = {
        'displayName': 'NEW SAVED QUERY NAME',
        'query': mail_query,
    }
    return self.service.matters().savedQueries().create(
        matterId=matter_id, body=saved_query).execute()

Drive

Java

public SavedQuery createDriveAllDataOUSavedQuery(String matterId) throws Exception {
    OrgUnitInfo ouToSearch = new OrgUnitInfo().setOrgUnitId("ou id retrieved from admin sdk");
    DriveOptions driveQueryOptions = new DriveOptions().setIncludeTeamDrives(true);
    Query driveQuery =
        new Query()
            .setCorpus("DRIVE")
            .setDataScope("ALL_DATA")
            .setSearchMethod("ORG_UNIT")
            .setOrgUnitInfo(ouToSearch)
            .setDriveOptions(driveQueryOptions);
    SavedQuery savedQuery =
        new SavedQuery()
            .setDisplayName("NEW SAVED QUERY NAME")
            .setQuery(driveQuery);
    return client.matters().savedQueries().create(matterId, savedQuery).execute();
  }
} 

Python

def create_drive_all_data_ou_saved_query(self, matter_id):
    ou_to_search = 'ou id retrieved from admin sdk'
    drive_query_options = {'includeTeamDrives': True}
    drive_query = {
        'corpus': 'DRIVE',
        'dataScope': 'ALL_DATA',
        'searchMethod': 'ORG_UNIT',
        'orgUnitInfo': {
            'org_unit_id': ou_to_search,
        },
        'driveOptions': drive_query_options
    }
    saved_query = {
        'displayName': 'NEW SAVED QUERY NAME',
        'query': drive_query,
    }
    return self.service.matters().savedQueries().create(
        matterId=matter_id, body=saved_query).execute()

حذف طلب بحث محفوظ

يوضّح المثال التالي كيفية حذف طلب بحث محفوظ.

Java

public Empty deleteSavedQuery(String matterId, String savedQueryId) throws Exception {
    return client.matters().savedQueries().delete(matterId, savedQueryId).execute();
} 

Python

def delete_saved_query(self, matter_id, saved_query_id):
    empty_response = self.service.matters().savedQueries().delete(
        matterId=matter_id, savedQueryId=saved_query_id).execute()
    return empty_response

الحصول على طلب بحث محفوظ

يوضّح المثال التالي كيفية استرداد طلب بحث محفوظ حسب رقم تعريفه.

Java

public SavedQuery getSavedQuery(String matterId, String savedQueryId) throws Exception {
    return client.matters().savedQueries().get(matterId, savedQueryId).execute();
} 

Python

def get_saved_query(self, matter_id, saved_query_id):
    saved_query = self.service.matters().savedQueries().get(
        matterId=matter_id, savedQueryId=saved_query_id).execute()
    return saved_query

إدراج طلبات البحث المحفوظة في مسألة قانونية

يوضّح المثال التالي كيفية إدراج طلبات البحث المحفوظة لمسألة معيّنة.

Java

public void listSavedQueries(String matterId) throws Exception {
    ListSavedQueriesResponse firstPageResponse =
        client.matters().savedQueries().list(matterId).setPageSize(10).execute();
    String nextPageToken = firstPageResponse.getNextPageToken();
    if (nextPageToken != null) {
      client
          .matters()
          .savedQueries()
          .list(matterId)
          .setPageSize(10)
          .setPageToken(nextPageToken)
          .execute();
    }
} 

Python

def list_saved_queries(self, matter_id):
    first_page_response = self.service.matters().savedQueries().list(
        matterId=matter_id, pageSize=10).execute()
    if 'nextPageToken' in first_page_response:
      self.service.matters().savedQueries().list(
          pageSize=10,
          pageToken=first_page_response['nextPageToken']).execute()