Ansicht SEARCH_INDEXES
Die Ansicht INFORMATION_SCHEMA.SEARCH_INDEXES enthält eine Zeile für jeden Suchindex in einem Dataset.
Erforderliche Berechtigungen
Zum Aufrufen der Metadaten des Suchindex benötigen Sie die Berechtigung bigquery.tables.get oder bigquery.tables.list der Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM) für die Tabelle mit dem Index. Jede der folgenden vordefinierten IAM-Rollen enthält mindestens eine der folgenden Berechtigungen:
roles/bigquery.adminroles/bigquery.dataEditorroles/bigquery.dataOwnerroles/bigquery.dataViewerroles/bigquery.metadataViewerroles/bigquery.user
Weitere Informationen zu BigQuery-Berechtigungen finden Sie unter Zugriffssteuerung mit IAM.
Schema
Wenn Sie die AnsichtINFORMATION_SCHEMA.SEARCH_INDEXES abfragen, wird im Ergebnis jeder Suchindex in einem Dataset in einer eigenen Zeile dargestellt.
Die Ansicht INFORMATION_SCHEMA.SEARCH_INDEXES hat das folgende Schema:
| Spaltenname | Datentyp | Wert | 
|---|---|---|
index_catalog | 
      STRING | 
      Der Name des Projekts, zu dem das Dataset gehört. | 
index_schema | 
      STRING | 
      Der Name des Datasets, das den Index enthält. | 
table_name | 
      STRING | 
      Der Name der Basistabelle, für die der Index erstellt wird. | 
index_name | 
      STRING | 
      Der Name des Index. | 
index_status | 
      STRING | 
      Der Status des Index: ACTIVE, PENDING
          DISABLEMENT, TEMPORARILY DISABLED oder
          PERMANENTLY DISABLED.
          
  | 
    
creation_time | 
      TIMESTAMP | 
      Der Zeitpunkt, zu dem der Index erstellt wurde. | 
last_modification_time | 
      TIMESTAMP | 
      Der Zeitpunkt der letzten Änderung der Indexkonfiguration. Beispiel: Löschen einer indexierten Spalte. | 
last_refresh_time | 
      TIMESTAMP | 
      Der Zeitpunkt der letzten Indexierung der Tabellendaten. Der Wert NULL bedeutet, dass der Index noch nicht verfügbar ist. | 
    
disable_time | 
      TIMESTAMP | 
      Die Zeitpunkt, zu dem der Indexstatus auf DISABLED gesetzt wurde. Der Wert ist NULL, wenn der Indexstatus nicht DISABLED ist. | 
    
disable_reason | 
      STRING | 
      Der Grund für die Deaktivierung des Index. NULL, wenn der Indexstatus nicht DISABLED ist. | 
    
DDL | 
      STRING | 
      Die DDL-Anweisung, die zum Erstellen des Index verwendet wird. | 
coverage_percentage | 
      INTEGER | 
      Der ungefähre Prozentsatz der indexierten Tabellendaten. 0 % bedeutet, dass der Index in einer SEARCH-Abfrage nicht verwendet werden kann, auch wenn einige Daten bereits indexiert wurden. | 
    
unindexed_row_count | 
      INTEGER | 
      Die Anzahl der Zeilen in der Basistabelle, die nicht indexiert sind. | 
total_logical_bytes | 
      INTEGER | 
      Die Anzahl der abrechenbaren logischen Byte für den Index. | 
total_storage_bytes | 
      INTEGER | 
      Die Anzahl der abrechenbaren Speicherbyte für den Index. | 
analyzer | 
      STRING | 
      Der Textanalysator, der zum Generieren von Tokens für den Suchindex verwendet werden soll. | 
Bereich und Syntax
Für Abfragen dieser Ansicht muss ein Dataset-Qualifizierer verwendet werden. In der folgenden Tabelle wird der Regionsbereich für diese Ansicht erläutert:
| Ansichtsname | Ressourcenbereich | Regionsbereich | 
|---|---|---|
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.SEARCH_INDEXES | 
    Dataset-Ebene | Dataset-Speicherort | 
- 
  Optional: 
PROJECT_ID: die ID Ihres Google Cloud -Projekts. Wenn keine Angabe erfolgt, wird das Standardprojekt verwendet. - 
  
DATASET_ID: die ID Ihres Datasets. Weitere Informationen finden Sie unter Dataset-Qualifier. 
Beispiel
-- Returns metadata for search indexes in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.SEARCH_INDEXES;
Beispiel
Das folgende Beispiel zeigt alle aktiven Suchindexe für Tabellen im Dataset my_dataset, das sich im Projekt my_project befindet. Sie enthält die Namen, die zum Erstellen verwendeten DDL-Anweisungen, den Deckungsprozentsatz und den Textanalysator. Ist eine indexierte Basistabelle kleiner als 10 GB, wird der Index nicht ausgefüllt. In diesem Fall ist coverage_percentage 0.
SELECT table_name, index_name, ddl, coverage_percentage, analyzer
FROM my_project.my_dataset.INFORMATION_SCHEMA.SEARCH_INDEXES
WHERE index_status = 'ACTIVE';
Die Ergebnisse sollten so aussehen:
+-------------+-------------+--------------------------------------------------------------------------------------+---------------------+----------------+ | table_name | index_name | ddl | coverage_percentage | analyzer | +-------------+-------------+--------------------------------------------------------------------------------------+---------------------+----------------+ | small_table | names_index | CREATE SEARCH INDEX `names_index` ON `my_project.my_dataset.small_table`(names) | 0 | NO_OP_ANALYZER | | large_table | logs_index | CREATE SEARCH INDEX `logs_index` ON `my_project.my_dataset.large_table`(ALL COLUMNS) | 100 | LOG_ANALYZER | +-------------+-------------+--------------------------------------------------------------------------------------+---------------------+----------------+