אחזור מודד את היעילות שבה החיפוש מאחזר את כל הפריטים הרלוונטיים לשאילתה נתונה. לדוגמה, נניח שיש לכם 100 הטמעות, שכל אחת מהן מייצגת ישות במסד הנתונים. אתם שולחים שאילתה להטמעות עם וקטור יעד ומגבילים אותה ל-10 תוצאות. חיפוש וקטורי של KNN מוצא את 10 הווקטורים הקרובים ביותר באמצעות שיטת חישוב של כוח גס, וכתוצאה מכך מתקבלת שליפה של 100%. כברירת מחדל, AlloyDB AI משתמש בשיטה הזו אם לא נוצר או נבחר אינדקס חיפוש וקטורי. כשיוצרים אינדקס וקטורי ב-AlloyDB Omni, בדרך כלל משתמשים ב-ANN, שיכול לחלק וקטורים לפי דמיון כדי לאחזר אותם מהר יותר. כתוצאה מכך, אם משתמשים ב-ANN, יכול להיות ש-10 הווקטורים שיוחזרו בדוגמה הקודמת לא יהיו בדיוק 10 הווקטורים הכי קרובים. אם 9 מתוך 10 הווקטורים שאוחזרו הם הקרובים ביותר במרחב לווקטור השאילתה, אז ה-recall הוא 90%. מידע נוסף זמין במאמר מדידת השליפה של שאילתות וקטוריות.
זמן האחזור של השאילתה קובע כמה מהר נוצרות תוצאות החיפוש. לדוגמה, זמן האחזור מחושב על סמך הזמן שנדרש לחיפוש כדי להחזיר את הווקטורים אחרי ששולחים שאילתה.
בחירת אסטרטגיית חיפוש
כשמבצעים חיפוש וקטורי ב-AlloyDB Omni, בוחרים באחת משיטות החיפוש הבאות:
| אסטרטגיית חיפוש | תיאור | תרחישים לדוגמה |
| K השכנים הקרובים ביותר (KNN) |
אלגוריתם שמוצא את k נקודות על הגרף הקרובות ביותר לנקודת נתונים בשאילתה נתונה. כשמבצעים חיפוש וקטורי בלי ליצור אינדקס, כברירת מחדל מתבצע חיפוש KNN. כדי לשפר עוד יותר את הביצועים של חיפוש KNN, הוסיפו את עמודת ההטמעה ועמודות אחרות שקשורות לשאילתה למאגר העמודות במנוע מבוסס-עמודות. אתם יכולים להוסיף את העמודות באופן ידני או להוסיף את העמודות באמצעות ארגון אוטומטי בעמודות. |
|
| שכנים קרובים משוערים (ANN) | אלגוריתם שמוצא בקירוב את נקודות הנתונים הקרובות ביותר. ANN מחלק את הנקודות על הגרף של נתוני הלקוחות הקיימים לקבוצות קטנות על סמך קווי דמיון. |
|
שני הסוגים הנפוצים של אינדקסים וקטוריים מבוססי-ANN ל-AlloyDB Omni הם ScaNN ו-HNSW. אתם יכולים להיעזר בהנחיות הבאות כדי להחליט איזה סוג אינדקס הכי מתאים לתרחיש לדוגמה שלכם:
| סוג האינדקס | מתי להשתמש | יתרונות | האצה של מנוע מבוסס-עמודות |
| ScaNN |
בדרך כלל מתאים לנתונים עם מעט מאפיינים או למערכי נתונים גדולים מאוד שחורגים מהזיכרון. מתאים ל-10 מיליארד וקטורים. |
יש לו כמה יתרונות על פני HNSW ב-PostgreSQL רגיל:
|
אפשר להאיץ את החיפוש הווקטורי באמצעות אינדקס ScaNN באמצעות מנוע מבוסס-עמודות של AlloyDB Omni. מידע נוסף זמין במאמר האצת החיפוש הווקטורי באמצעות המנוע מבוסס-העמודות. |
| HNSW |
בדרך כלל מתאים לנתונים עם יותר ממדים, שמתאימים ברובם למטמון בזיכרון. מתאים ל-10 עד 20 מיליון וקטורים. |
אינדקס HNSW מואץ של מנוע מבוסס-עמודות pgvector ב-AlloyDB Omni מציע שאילתות וקטוריות מהירות עד פי 5 בהשוואה ל-PostgreSQL רגיל | אפשר להאיץ את החיפוש הווקטורי באמצעות אינדקס HNSW בעזרת המנוע מבוסס-העמודות של AlloyDB Omni. מידע נוסף זמין במאמר האצת החיפוש הווקטורי באמצעות המנוע מבוסס-העמודות. |
Google ממליצה ליצור אינדקס וקטורי כדי לשפר את הביצועים של שאילתות החיפוש הווקטורי. מידע נוסף על השימוש באינדקס ANN לחיפושי דמיון זמין במאמר יצירת אינדקסים באמצעות ScaNN.
כדי להאיץ את החיפוש המסונן של KNN, השתמשו במנוע מבוסס-עמודות.
המאמרים הבאים
- יצירת אינדקסים ווקטורים של שאילתות באמצעות ScaNN
- יצירת אינדקסים באמצעות HNSW
- כוונון הביצועים של שאילתות וקטוריות