MySQL
| PostgreSQL
בדף הזה מוגדר התחביר של הצהרות שפת הגדרת הנתונים (DDL) של MySQL, שמשמשות להרחבות של Cloud SQL.
הצהרות VECTOR
בקטע הזה יש מידע על VECTOR הצהרות.
CREATE VECTOR INDEX
יוצרת אינדקס וקטורי.
CREATE VECTOR INDEX index_name
[opt_index_type]
ON table_name (column_name)
[index_options]
where opt_index_type is:
| USING SCANN
where index_option is :
USING SCANN
| [QUANTIZER=SQ8]
| [NUM_LEAVES=int_value]
| DISTANCE_MEASURE=L2_SQUARED|DOT_PRODUCT|COSINE
פרמטרים
-
USING SCANN: חובה. סוג האינדקס שבו משתמשים כשיוצרים את אינדקס הווקטור. האלגוריתם הזה יוצר אינדקס ScaNN. הערך הנתמך היחיד הואSCANN. אי אפשר לשנות את הפרמטר הזה. -
QUANTIZER: אופציונלי. הפרמטר הזה ממפה וקטור בעל ממדים רבים לייצוג דחוס. הערך הנתמך היחיד הואSQ8. אי אפשר לשנות את הפרמטר הזה. -
NUM_LEAVES: אופציונלי. מציין כמה מחיצות (עלים) לבנות. כדאי לשנות את ההגדרה הזו מהגדרת ברירת המחדל רק אם אתם מבינים היטב את החיפוש ב-ANN ואת מערך הנתונים שלכם. המספר שצוין לא יכול להיות גדול ממספר ההטמעות במסד הנתונים הטבלאי. -
DISTANCE_MEASURE: חובה. נוסחה מתמטית שמחשבת את הדמיון בין שני וקטורים. צריך להגדיר בפרמטר הזה את אותה יחידת מידה למרחק כמו המרחק באפשרויות החיפוש שלapprox_distance. העיצורים הצידיים הנתמכים הם:L2_SQUAREDCOSINEDOT_PRODUCT
דוגמה
בדוגמה הבאה מוסבר איך ליצור אינדקס וקטורי בטבלה table_name:
CREATE
VECTOR INDEX index1
ON table_name(vector_column_name)
USING SCANN QUANTIZER = SQ8 DISTANCE_MEASURE = l2_squared;
ALTER TABLE
הוספת אינדקס וקטורי לטבלה קיימת. בחיפושים וקטוריים צריך להגדיר את SCANN כאפשרות האינדקס, וסוג הקוונטיזציה חייב להיות SQ8.
ALTER TABLE table_name
ADD VECTOR INDEX index_name(key_part)[index_option];
WHERE key_part is:{ _col_name_[(_length_)] | (_expr_) }
WHERE
index_option
is:USING
SCANN
| [QUANTIZER = SQ8]
| [NUM_LEAVES = int_value]
| DISTANCE_MEASURE
= L2_SQUARED | DOT_PRODUCT | COSINE
פרמטרים
-
USING SCANN: חובה. סוג האינדקס שבו משתמשים כשיוצרים את אינדקס הווקטור. האלגוריתם הזה יוצר אינדקס ScaNN. הערך הנתמך היחיד הואSCANN. אי אפשר לשנות את הפרמטר הזה. -
QUANTIZER: אופציונלי. הפרמטר הזה ממפה וקטור בעל ממדים רבים לייצוג דחוס. הערך הנתמך היחיד הואSQ8. אי אפשר לשנות את הפרמטר הזה. -
NUM_LEAVES: אופציונלי. מציין כמה מחיצות (עלים) לבנות. כדאי לשנות את ההגדרה הזו מהגדרת ברירת המחדל רק אם אתם מבינים היטב את החיפוש ב-ANN ואת מערך הנתונים שלכם. המספר שצוין לא יכול להיות גדול ממספר ההטמעות במסד הנתונים הטבלאי. -
DISTANCE_MEASURE: חובה. נוסחה מתמטית שמחשבת את הדמיון בין שני וקטורים. צריך להגדיר בפרמטר הזה את אותה יחידת מידה למרחק כמו המרחק באפשרויות החיפוש שלapprox_distance. העיצורים הצידיים הנתמכים הם:L2_SQUAREDCOSINEDOT_PRODUCT
דוגמה
בדוגמה הבאה מוסבר איך להוסיף אינדקס וקטורי לטבלה t1.
ALTER TABLE t1 ADD VECTOR INDEX index1(j)
USING SCANN QUANTIZER = SQ8 DISTANCE_MEASURE = l2_squared;