SEARCH_INDEX_OPTIONS 檢視畫面
INFORMATION_SCHEMA.SEARCH_INDEX_OPTIONS 檢視表會針對資料集中的每個搜尋索引選項,分別列出一個相對應的資料列。
所需權限
如要查看搜尋索引中繼資料,您必須具備索引所在資料表的 bigquery.tables.get 或 bigquery.tables.list Identity and Access Management (IAM) 權限。下列每個預先定義的 IAM 角色都至少包含其中一項權限:
roles/bigquery.adminroles/bigquery.dataEditorroles/bigquery.dataOwnerroles/bigquery.dataViewerroles/bigquery.metadataViewerroles/bigquery.user
如要進一步瞭解 BigQuery 權限,請參閱「使用 IAM 控管存取權」。
結構定義
查詢INFORMATION_SCHEMA.SEARCH_INDEX_OPTIONS 檢視表時,資料集中每個搜尋索引選項在查詢結果都會有一個資料列。
INFORMATION_SCHEMA.SEARCH_INDEX_OPTIONS 檢視表具有下列結構定義:
| 資料欄名稱 | 資料類型 | 值 |
|---|---|---|
index_catalog |
STRING |
資料集所屬專案的名稱。 |
index_schema |
STRING |
包含索引的資料集名稱。 |
table_name |
STRING |
建立索引的基礎資料表名稱。 |
index_name |
STRING |
索引的名稱。 |
option_name |
STRING |
選項名稱,可以是下列其中一項:analyzer、analyzer_options、data_types 或 default_index_column_granularity。 |
option_type |
STRING |
選項類型。 |
option_value |
STRING |
選項的值。 |
為確保穩定性,建議您在資訊結構定義查詢中明確列出資料欄,而非使用萬用字元 (SELECT *)。明確列出資料欄可避免基礎結構定義變更時,查詢中斷。
範圍和語法
對這個檢視表執行的查詢必須具有資料集限定詞。下表說明這個檢視畫面的區域範圍:
| 檢視表名稱 | 資源範圍 | 區域範圍 |
|---|---|---|
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.SEARCH_INDEX_OPTIONS |
資料集層級 | 資料集位置 |
-
選用:
PROJECT_ID:您的 Google Cloud 專案 ID。如未指定,系統會使用預設專案。 -
DATASET_ID:資料集 ID。詳情請參閱「資料集限定符」。
示例
-- Returns metadata for search index options in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.SEARCH_INDEX_OPTIONS;
範例
以下範例會為資料欄建立三個搜尋索引選項,然後從已建立索引的欄位中擷取這些選項:table1
CREATE SEARCH INDEX myIndex ON `mydataset.table1` (ALL COLUMNS) OPTIONS ( analyzer = 'LOG_ANALYZER', analyzer_options = '{ "delimiters" : [".", "-"] }', data_types = ['STRING', 'INT64', 'TIMESTAMP'] ); SELECT index_name, option_name, option_type, option_value FROM mydataset.INFORMATION_SCHEMA.SEARCH_INDEX_OPTIONS WHERE table_name='table1';
結果大致如下:
+------------+------------------+---------------+----------------------------------+
| index_name | option_name | option_type | option_value |
+------------+------------------+---------------+----------------------------------+
| myIndex | analyzer | STRING | LOG_ANALYZER |
| myIndex | analyzer_options | STRING | { "delimiters": [".", "-"] } |
| myIndex | data_types | ARRAY<STRING> | ["STRING", "INT64", "TIMESTAMP"] |
+------------+------------------+---------------+----------------------------------+
以下範例會為資料欄建立一個搜尋索引選項,然後從已建立索引的欄位中擷取這些選項。table1如果選項不存在,系統會產生預設選項:
CREATE SEARCH INDEX myIndex ON `mydataset.table1` (ALL COLUMNS) OPTIONS ( analyzer = 'NO_OP_ANALYZER' ); SELECT index_name, option_name, option_type, option_value FROM mydataset.INFORMATION_SCHEMA.SEARCH_INDEX_OPTIONS WHERE table_name='table1';
結果大致如下:
+------------+------------------+---------------+----------------+ | index_name | option_name | option_type | option_value | +------------+------------------+---------------+----------------+ | myIndex | analyzer | STRING | NO_OP_ANALYZER | | myIndex | data_types | ARRAY<STRING> | ["STRING"] | +------------+------------------+---------------+----------------+
以下範例不會為 table1 的資料欄建立任何搜尋索引選項,然後從已建立索引的欄位中擷取預設選項:
CREATE SEARCH INDEX myIndex ON `mydataset.table1` (ALL COLUMNS); SELECT index_name, option_name, option_type, option_value FROM mydataset.INFORMATION_SCHEMA.SEARCH_INDEX_OPTIONS WHERE table_name='table1';
結果大致如下:
+------------+------------------+---------------+----------------+ | index_name | option_name | option_type | option_value | +------------+------------------+---------------+----------------+ | myIndex | analyzer | STRING | LOG_ANALYZER | | myIndex | data_types | ARRAY<STRING> | ["STRING"] | +------------+------------------+---------------+----------------+