Saved Query API를 사용하면 Vault에서 저장된 쿼리를 프로그래매틱 방식으로 관리할 수 있습니다. 저장된 쿼리를 실행하여 쿼리의 기준에 따라 동일한 결과 또는 더 최신 결과를 추가로 검색할 수 있습니다. 예를 들어 쿼리에 종료 날짜가 포함된 경우 처음 쿼리를 실행했을 때와 동일한 결과가 검색됩니다. 쿼리에 종료 날짜가 포함되지 않은 경우 원래 검색 결과와 함께 검색 기준을 충족하는 모든 새 데이터가 반환됩니다.
다음과 같은 스크립트에서 이 API를 사용할 수 있습니다.
- 케이스에서 저장된 쿼리 만들기
- 저장된 쿼리를 케이스에서 삭제
- 케이스에서 저장된 검색어 가져오기
- 케이스에서 저장된 모든 쿼리 검색
Vault 리소스를 사용하려면 계정에 필요한 Vault 권한이 있고 케이스에 대한 액세스 권한이 있어야 합니다. 법적 사안에 액세스하려면 해당 계정이 법적 사안을 만들었거나, 법적 사안이 해당 계정과 공유되었거나, 모든 법적 사안 보기 권한이 있어야 합니다.
저장된 검색어 만들기
다음 예에서는 메일 메시지 및 Drive의 파일에 대해 저장된 쿼리를 만드는 방법을 보여줍니다.
메일
자바
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()
드라이브
자바
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()
저장된 검색어 삭제하기
다음 예는 저장된 쿼리를 삭제하는 방법을 보여줍니다.
자바
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
저장된 검색어 가져오기
다음 예는 저장된 쿼리를 ID로 검색하는 방법을 보여줍니다.
자바
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
케이스의 저장된 쿼리 나열
다음 예는 케이스의 저장된 쿼리를 나열하는 방법을 보여줍니다.
자바
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()