תצוגת SEARCH_INDEX_OPTIONS

התצוגה INFORMATION_SCHEMA.SEARCH_INDEX_OPTIONS מכילה שורה אחת לכל אפשרות של אינדקס חיפוש בקבוצת נתונים.

ההרשאות הנדרשות

כדי לראות את המטא-נתונים של אינדקס החיפוש, צריך לקבל את ההרשאה bigquery.tables.get או bigquery.tables.list לניהול זהויות והרשאות גישה (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 שם האפשרות, שיכול להיות אחד מהערכים הבאים: 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"]     |
+------------+------------------+---------------+----------------+