Quản lý truy vấn đã lưu

API truy vấn đã lưu cho phép bạn quản lý các truy vấn đã lưu theo phương thức lập trình trong Google Vault. Bạn có thể chạy một truy vấn đã lưu để truy xuất các kết quả giống nhau hoặc kết quả mới hơn, tuỳ thuộc vào tiêu chí của truy vấn. Ví dụ: nếu truy vấn của bạn có ngày kết thúc, thì bạn sẽ truy xuất được các kết quả giống như khi chạy truy vấn lần đầu. Nếu truy vấn không có ngày kết thúc, thì bạn sẽ nhận được kết quả ban đầu cùng với mọi dữ liệu mới đáp ứng tiêu chí tìm kiếm.

Truy vấn đã lưu không giữ lại các thông báo và tệp do truy vấn tạo ra; mà chỉ lưu các tham số tìm kiếm. Bạn phải xuất kết quả tìm kiếm để giữ lại các thông báo và tệp ở trạng thái hiện tại.

Bạn có thể sử dụng API này trong các tập lệnh thực hiện những thao tác sau:

  • Tạo một truy vấn đã lưu trong một vụ việc.
  • Xoá một truy vấn đã lưu khỏi một vụ việc.
  • Truy xuất một truy vấn đã lưu khỏi một vụ việc.
  • Truy xuất tất cả các truy vấn đã lưu khỏi một vụ việc.

Để làm việc với các tài nguyên Vault, một tài khoản phải có các đặc quyền Vault bắt buộc và quyền truy cập vào vụ việc. Để truy cập vào một vụ việc, tài khoản phải tạo vụ việc đó, được chia sẻ vụ việc đó hoặc có đặc quyền Xem tất cả vụ việc.

Tạo truy vấn tìm kiếm đã lưu

Các ví dụ sau đây cho biết cách tạo truy vấn đã lưu cho thư và cho các tệp trong Google Drive:

Mail

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()

Xoá truy vấn tìm kiếm đã lưu

Ví dụ sau đây cho biết cách xoá một truy vấn đã lưu.

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

Lấy truy vấn tìm kiếm đã lưu

Ví dụ sau đây cho biết cách truy xuất một truy vấn đã lưu theo mã nhận dạng của truy vấn đó.

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

Liệt kê các truy vấn đã lưu trong một vụ việc

Ví dụ sau đây cho biết cách liệt kê các truy vấn đã lưu của một vụ việc.

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()