Visualizzazione SEARCH_INDEX_OPTIONS

La visualizzazione INFORMATION_SCHEMA.SEARCH_INDEX_OPTIONS contiene una riga per ogni opzione di indice di ricerca in un set di dati.

Autorizzazioni obbligatorie

Per visualizzare i metadati dell'indice di ricerca, devi disporre dell'autorizzazione IAM (Identity and Access Management) bigquery.tables.get o bigquery.tables.list per la tabella con l'indice. Ciascuno dei seguenti ruoli IAM predefiniti include almeno una di queste autorizzazioni:

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

Per ulteriori informazioni sulle autorizzazioni BigQuery, consulta Controllo dell'accesso con IAM.

Schema

Quando esegui una query sulla visualizzazione INFORMATION_SCHEMA.SEARCH_INDEX_OPTIONS, i risultati della query contengono una riga per ogni opzione di indice di ricerca in un set di dati.

La vista INFORMATION_SCHEMA.SEARCH_INDEX_OPTIONS ha lo schema seguente:

Nome colonna Tipo di dati Valore
index_catalog STRING Il nome del progetto che contiene il set di dati.
index_schema STRING Il nome del set di dati contenente l'indice.
table_name STRING Il nome della tabella di base su cui viene creato l'indice.
index_name STRING Il nome dell'indice.
option_name STRING Il nome dell'opzione, che può essere uno dei seguenti: analyzer, analyzer_options o data_types.
option_type STRING Il tipo di opzione.
option_value STRING Il valore dell'opzione.

Ambito e sintassi

Le query su questa vista devono avere un qualificatore del set di dati. La tabella seguente illustra l'ambito della regione per questa visualizzazione:

Visualizza nome Ambito risorsa Ambito regione
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.SEARCH_INDEX_OPTIONS A livello di set di dati Posizione del set di dati
Sostituisci quanto segue:

  • Facoltativo: PROJECT_ID: l'ID del tuo progetto Google Cloud. Se non specificato, viene utilizzato il progetto predefinito.

    Esempio

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

    Esempio

    L'esempio seguente crea tre opzioni di indicizzazione per le colonne di table1 ed estrae queste opzioni dai campi indicizzati:

    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';

    Il risultato è simile al seguente:

    +------------+------------------+---------------+----------------------------------+
    | 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"] |
    +------------+------------------+---------------+----------------------------------+
    

    L'esempio seguente crea un'opzione di indice di ricerca per le colonne di table1 e poi estrae queste opzioni dai campi indicizzati. Se un'opzione non esiste, viene generata l'opzione predefinita:

    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';

    Il risultato è simile al seguente:

    +------------+------------------+---------------+----------------+
    | index_name |  option_name     | option_type   | option_value   |
    +------------+------------------+---------------+----------------+
    | myIndex    | analyzer         | STRING        | NO_OP_ANALYZER |
    | myIndex    | data_types       | ARRAY<STRING> | ["STRING"]     |
    +------------+------------------+---------------+----------------+
    

    L'esempio seguente non crea opzioni di indicizzazione della ricerca per le colonne di table1 e poi estrae le opzioni predefinite dai campi indicizzati:

    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';

    Il risultato è simile al seguente:

    +------------+------------------+---------------+----------------+
    | index_name |  option_name     | option_type   | option_value   |
    +------------+------------------+---------------+----------------+
    | myIndex    | analyzer         | STRING        | LOG_ANALYZER   |
    | myIndex    | data_types       | ARRAY<STRING> | ["STRING"]     |
    +------------+------------------+---------------+----------------+