תכונות ומגבלות

בדף הזה מפורטים התכונות והמגבלות של חיפוש וקטורי.

זמינות

החיפוש הווקטורי זמין בכל הגרסאות של Memorystore for Redis Cluster, בכל הרמות ובכל האזורים הנתמכים.

רק אשכולות שיוצרים אחרי 13 בספטמבר 2024 כוללים חיפוש וקטורי.

הגבלות על האינדקס

בהמשך מפורטות המגבלות של האינדקס:

  • מספר המאפיינים המקסימלי באינדקס לא יכול לעלות על 10.
  • המימד של וקטור לא יכול להיות גדול מ-32,768.
  • הערך M של HNSW לא יכול להיות גדול מ-2M.
  • הערך של EF Construct עבור HNSW לא יכול להיות גדול מ-4096.
  • הערך של זמן הריצה של EF עבור HNSW לא יכול להיות גדול מ-4,096.

השפעות על הביצועים

כשבוחנים את הביצועים של חיפוש וקטורי, יש כמה משתנים חשובים שכדאי לקחת בחשבון.

סוג הצומת

חיפוש וקטורי מאפשר הרחבה אנכית באמצעות שילוב של מאגרי שרשורים שמיועדים לביצוע פעולות חיפוש וקטורי. המשמעות היא שהביצועים יהיו קשורים למספר המעבדים הווירטואליים בכל צומת באשכול. לפרטים על מספר יחידות ה-vCPU שזמינות בכל סוג צומת, אפשר לעיין במאמר בנושא מאפייני הצמתים.

מספר השארדים

ב-Memorystore for Redis Cluster מיושמת טכניקת אינדוקס מקומית לכל הווקטורים. המשמעות היא שהאינדקס שמאוחסן בכל שבר מכיל רק את המסמכים שנמצאים בשבר הזה. לכן, מהירות האינדוקס ומספר הווקטורים הכולל יגדלו באופן לינארי עם מספר הרסיסים באשכול.

מכיוון שכל אינדקס מקומי מכיל רק את התוכן של רסיס אחד, כדי לחפש באשכול צריך לחפש בכל רסיס באשכול ולצבור את התוצאות. אם יש מספר יציב של וקטורים, הגדלת מספר הרסיסים תשפר את ביצועי החיפוש באופן לוגריתמי במקרה של אינדקסים מסוג HNSW, ובאופן לינארי במקרה של אינדקסים מסוג FLAT, כי כל אינדקס מקומי יכיל פחות וקטורים.

שימו לב: ככל שמוסיפים עוד שברים, זמן האחזור הנצפה להשלמת בקשת חיפוש נתונה עשוי להתארך, כי נדרשת יותר עבודה כדי לחפש בכל השברים. למרות זאת, אפילו האשכולות הגדולים ביותר תומכים בחביון של מילישניות בודדות.

מספר העותקים המשוכפלים

הוספה של רפליקות נוספות תגדיל את נפח התפוקה של החיפוש באופן ליניארי, כי היא תאפשר איזון עומסים של בקשות חיפוש לרפליקות לקריאה.

שינוי גודל של אירועים

כשמשנים את הגודל של אשכול Redis, המסמכים באינדקסים מועברים כדי לפזר את הנתונים באופן אחיד בין מספר השברים החדש. במצב כזה, מסמכים שמועברים בין צמתים יאונדקסו ברקע. אחרי שפעולת ההרחבה תושלם, תוכלו לעקוב אחרי הערך של mutation_queue_size בפלט FT.INFO כדי לראות את התקדמות האינדוקס מחדש בעקבות שינוי הגודל של האשכול.

צריכת זיכרון

הווקטורים משוכפלים ונשמרים גם במרחב המפתחות של Redis וגם באלגוריתם של חיפוש וקטורים.

טרנזקציות

בגלל האופי האסינכרוני של ביצוע משימות על ידי מאגרי שרשורים, פעולות חיפוש וקטוריות לא פועלות לפי סמנטיקה טרנזקציונלית.