Manage saved queries

The saved query API lets you programmatically manage saved queries in Google Vault. You can run a saved query to retrieve the same results or additional, newer results, depending on the criteria of the query. For example, if your query includes an end date, you retrieve the same results as when you first ran the query. If the query doesn't include an end date, you get your original results plus any new data that meets the search criteria.

A saved query doesn't preserve the messages and files generated by the query; it only saves the search parameters. You must export search results to preserve messages and files in their current state.

You can use this API in scripts that perform the following tasks:

  • Create a saved query in a matter.
  • Delete a saved query from a matter.
  • Retrieve a saved query from a matter.
  • Retrieve all saved queries from a matter.

To work with Vault resources, an account must have the required Vault privileges and access to the matter. To access a matter, an account must have created the matter, have the matter shared with them, or have the View All Mattersprivilege.

Create a saved search query

The following examples show how to create saved queries for mail messages and for files in 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 
 () 

Delete a saved search query

The following example shows how to delete a saved query.

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 

Get a saved search query

The following example shows how to retrieve a saved query by its ID.

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 

List saved queries in a matter

The following example shows how to list a matter's saved queries.

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 
 () 
Design a Mobile Site
View Site in Mobile | Classic
Share by: