SEARCH_INDEX_OPTIONS 檢視表

INFORMATION_SCHEMA.SEARCH_INDEX_OPTIONS 檢視表會針對資料集中的每個搜尋索引選項,列出一個資料列。

所需權限

如要查看搜尋索引中繼資料,您必須具備索引資料表的 bigquery.tables.getbigquery.tables.list 身分與存取權管理 (IAM) 權限。以下每個預先定義的 IAM 角色都包含下列至少一項權限:

  • roles/bigquery.admin
  • roles/bigquery.dataEditor
  • roles/bigquery.dataOwner
  • roles/bigquery.dataViewer
  • roles/bigquery.metadataViewer
  • roles/bigquery.user

如要進一步瞭解 BigQuery 權限,請參閱「使用身分與存取權管理功能控管存取權」。

結構定義

查詢 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 選項名稱,可為下列其中一個:analyzeranalyzer_optionsdata_typesdefault_index_column_granularity
option_type STRING 選項的類型。
option_value STRING 選項的值。

範圍和語法

對這個檢視表執行的查詢必須具有資料集限定詞。下表說明此檢視區域的範圍:

檢視表名稱 資源範圍 區域範圍
[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"]     |
+------------+------------------+---------------+----------------+