Vista de SEARCH_INDEX_OPTIONS
La vista INFORMATION_SCHEMA.SEARCH_INDEX_OPTIONS
contiene una fila para cada Índice de la Búsqueda en un conjunto de datos.
Permisos necesarios
Para ver los metadatos del índice de búsqueda, necesitas el permiso bigquery.tables.get
o bigquery.tables.list
de Identity and Access Management (IAM) en la tabla con el índice. Cada una de los siguientes roles predefinidos de IAM incluye, al menos, uno de estos permisos:
roles/bigquery.admin
roles/bigquery.dataEditor
roles/bigquery.dataOwner
roles/bigquery.dataViewer
roles/bigquery.metadataViewer
roles/bigquery.user
Para obtener más información sobre IAM de BigQuery, consulta Control de acceso con IAM.
Esquema
Cuando consultas la vistaINFORMATION_SCHEMA.SEARCH_INDEX_OPTIONS
, los resultados de la consulta contienen una fila por cada opción de Índice de la Búsqueda de un conjunto de datos.
La vista INFORMATION_SCHEMA.SEARCH_INDEX_OPTIONS
tiene el siguiente esquema:
Nombre de la columna | Tipo de datos | Valor |
---|---|---|
index_catalog |
STRING |
El nombre del proyecto que contiene el conjunto de datos. |
index_schema |
STRING |
Es el nombre del conjunto de datos que contiene el índice. |
table_name |
STRING |
El nombre de la tabla base en la que se crea el índice. |
index_name |
STRING |
Es el nombre del índice. |
option_name |
STRING |
El nombre de la opción, que puede ser uno de los siguientes: analyzer , analyzer_options o data_types .
|
option_type |
STRING |
Es el tipo de la opción. |
option_value |
STRING |
El valor de la opción. |
Permiso y sintaxis
Las consultas realizadas a esta vista deben tener un calificador de conjunto de datos. En la siguiente tabla, se explica el permiso de la región para esta vista:
Nombre de la vista | Permiso del recurso | Permiso de la región |
---|---|---|
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.SEARCH_INDEX_OPTIONS |
Nivel de conjunto de datos | Ubicación del conjunto de datos |
Opcional: PROJECT_ID
: el ID del proyecto de Google Cloud. Si no se especifica, se usa el proyecto predeterminado.
DATASET_ID
: Es el ID del conjunto de datos. Para obtener más información, consulta calificador de conjunto de datos.
Ejemplo
-- Returns metadata for search index options in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.SEARCH_INDEX_OPTIONS;
Ejemplo
En el siguiente ejemplo, se crean tres opciones de índice de búsqueda para las columnas de table1
y, luego, se extraen esas opciones de los campos indexados:
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';
El resultado es similar al siguiente:
+------------+------------------+---------------+----------------------------------+ | 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"] | +------------+------------------+---------------+----------------------------------+
En el siguiente ejemplo, se crea una opción de índice de búsqueda para las columnas de table1
y, luego, se extraen esas opciones de los campos indexados. Si no existe una opción, se produce la opción predeterminada:
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';
El resultado es similar al siguiente:
+------------+------------------+---------------+----------------+ | index_name | option_name | option_type | option_value | +------------+------------------+---------------+----------------+ | myIndex | analyzer | STRING | NO_OP_ANALYZER | | myIndex | data_types | ARRAY<STRING> | ["STRING"] | +------------+------------------+---------------+----------------+
En el siguiente ejemplo, no se crean opciones de índice de búsqueda para las columnas de table1
y, luego, se extraen las opciones predeterminadas de los campos que están indexados:
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';
El resultado es similar al siguiente:
+------------+------------------+---------------+----------------+ | index_name | option_name | option_type | option_value | +------------+------------------+---------------+----------------+ | myIndex | analyzer | STRING | LOG_ANALYZER | | myIndex | data_types | ARRAY<STRING> | ["STRING"] | +------------+------------------+---------------+----------------+