SEARCH_INDEX_OPTIONS 视图

INFORMATION_SCHEMA.SEARCH_INDEX_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_OPTIONS 视图时,数据集中的每个搜索索引选项都会有一行对应的查询结果。

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

列名 数据类型
index_catalog STRING 包含数据集的项目的名称。
index_schema STRING 包含索引的数据集的名称。
table_name STRING 在其中创建索引的基表的名称。
index_name STRING 索引的名称。
option_name STRING 选项的名称,可以是以下值之一:analyzeranalyzer_optionsdata_types
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"]     |
    +------------+------------------+---------------+----------------+