תצוגת SEARCH_INDEX_OPTIONS
התצוגה INFORMATION_SCHEMA.SEARCH_INDEX_OPTIONS מכילה שורה אחת לכל אפשרות של אינדקס חיפוש בקבוצת נתונים.
ההרשאות הנדרשות
כדי לראות את המטא-נתונים של אינדקס החיפוש, צריך לקבל את ההרשאה bigquery.tables.get או bigquery.tables.list לניהול זהויות והרשאות גישה (IAM) בטבלה עם האינדקס. כל אחד מתפקידי ה-IAM המוגדרים מראש הבאים כולל לפחות אחת מההרשאות האלה:
roles/bigquery.adminroles/bigquery.dataEditorroles/bigquery.dataOwnerroles/bigquery.dataViewerroles/bigquery.metadataViewerroles/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 |
שם האפשרות, שיכול להיות אחד מהערכים הבאים: analyzer, analyzer_options, data_types או default_index_column_granularity.
|
option_type |
STRING |
סוג האפשרות. |
option_value |
STRING |
הערך של האפשרות. |
כדי לשמור על יציבות, מומלץ לציין במפורש את העמודות בשאילתות של סכימת המידע, במקום להשתמש בתו כל כללי (SELECT *). ציון מפורש של העמודות מונע את השבירה של השאילתות אם הסכימה הבסיסית משתנה.
היקף ותחביר
שאילתות שמופעלות על התצוגה הזו צריכות לכלול מזהה מערך נתונים. בטבלה הבאה מוסבר היקף האזור בתצוגה הזו:
| שם התצוגה המפורטת | היקף המשאבים | היקף האזור |
|---|---|---|
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.SEARCH_INDEX_OPTIONS |
רמת מערך הנתונים | מיקום מערך הנתונים |
-
אופציונלי:
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . אם לא מציינים פרויקט, המערכת משתמשת בפרויקט שמוגדר כברירת מחדל. -
DATASET_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"] | +------------+------------------+---------------+----------------+