SEARCH_INDEX_COLUMN_OPTIONS 视图

INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS 视图中的每一行对应数据集中表中具有搜索索引的列上设置的每个选项。

所需权限

如需查看搜索索引元数据,您需要对具有相应索引的表拥有 bigquery.tables.getbigquery.tables.list Identity and Access Management (IAM) 权限。以下每个预定义的 IAM 角色都至少包含以下权限之一:

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

如需详细了解 BigQuery 权限,请参阅使用 IAM 进行访问权限控制

架构

当您查询 INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS 视图时,数据集中表格中已编入搜索索引的列上设置的每个选项都会有一行对应的查询结果。

INFORMATION_SCHEMA.SEARCH_INDEX_OPTIONS 视图具有如下架构:

列名 数据类型
index_catalog STRING 包含数据集的项目的名称。
index_schema STRING 包含索引的数据集的名称。
table_name STRING 在其中创建索引的基表的名称。
index_name STRING 索引的名称。
column_name STRING 设置该选项的已编入索引的列的名称。
option_name STRING 列上指定的选项的名称。
option_type STRING 选项的类型。
option_value STRING 选项的值。

范围和语法

针对此视图的查询必须具有数据集限定符。下表说明了此视图的区域范围:

视图名称 资源范围 区域范围
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS 数据集级 数据集位置
替换以下内容:
  • 可选:PROJECT_ID:您的 Google Cloud 项目的 ID。如果未指定,则使用默认项目。
  • DATASET_ID:您的数据集的 ID。如需了解详情,请参阅数据集限定符

示例

-- Returns metadata for search index column options in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS;

示例

以下示例将默认索引列精细化设置为 COLUMN,并分别将 col2col3 的精细化设置为 GLOBALCOLUMN。在本例中,col2col3 列会显示在结果中,因为其粒度已明确设置。由于 col1 列使用默认精度,因此系统不会显示其精度。

CREATE SEARCH INDEX index1 ON `mydataset.table1` (
  ALL COLUMNS WITH COLUMN OPTIONS (
    col2 OPTIONS(index_granularity = 'GLOBAL'),
    col3 OPTIONS(index_granularity = 'COLUMN')
  )
)
OPTIONS(
  default_index_column_granularity = 'COLUMN'
);

SELECT
  index_column_name, option_name, option_type, option_value
FROM
  mydataset.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS
WHERE
  index_schema = 'mydataset' AND index_name = 'index1' AND table_name = 'table1';

结果类似于以下内容:

+-------------+-------------------+---------------+--------------+
| column_name |  option_name      | option_type   | option_value |
+-------------+-------------------+---------------+--------------+
| col2        | index_granularity | STRING        | GLOBAL       |
| col3        | index_granularity | STRING        | COLUMN       |
+-------------+-------------------+---------------+--------------+

以下等效示例(不使用 ALL COLUMNS)将默认索引列粒度设置为 COLUMN,并分别将两个列的粒度分别设置为 GLOBALCOLUMN

CREATE SEARCH INDEX index1 ON `mydataset.table1` (
  col1,
  col2 OPTIONS(index_granularity = 'GLOBAL'),
  col3 OPTIONS(index_granularity = 'COLUMN')
)
OPTIONS(
  default_index_column_granularity = 'COLUMN'
);

SELECT
  index_column_name, option_name, option_type, option_value
FROM
  mydataset.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS
WHERE
  index_schema = 'mydataset' AND index_name = 'index1' AND table_name = 'table1';

结果类似于以下内容:

+-------------+-------------------+---------------+--------------+
| column_name |  option_name      | option_type   | option_value |
+-------------+-------------------+---------------+--------------+
| col2        | index_granularity | STRING        | GLOBAL       |
| col3        | index_granularity | STRING        | COLUMN       |
+-------------+-------------------+---------------+--------------+