השלמה אוטומטית

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

התכונה 'השלמה אוטומטית' מחלצת ביטויים מהכותרות של מסמכים שנוספו לאינדקס, ומשתמשת במודל n-gram כדי לקבוע אילו הצעות להציג באמצעות Suggest API. כברירת מחדל, ביטויים מכותרות המסמכים מוצגים בהשלמה האוטומטית. אפשר גם לסמן מאפייני schema מסוג טקסט ומאפייני schema מסוג enum בתור is_suggestable כדי להשלים אוטומטית את השם והערכים של המאפיין התואם.

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

תרחיש לדוגמה

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

  • מקור הנתונים מכיל 2 מסמכים.
  • לכל מסמך יש שם (ItemMetadata.title) ושני מאפיינים: genre ו-characters.
  • המסמך הראשון נקרא 'Avengers Infinity War' עם genre=science fiction ו-characters=Iron Man, Hulk
  • המסמך השני נקרא 'הארי פוטר' עם genre=Adventure, Fantasy andcharacters=Hermione, Harry Potter`

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

שני מסמכים וה-n-gram שנוצר
איור 1. שני מסמכים וה-n-gram שנוצר ושימש להשלמה אוטומטית

מהמסמך הראשון אנחנו מחלצים נגרים (עד טריגרמים) "Avengers",‏ "Infinity",‏ "War",‏ "Avengers Infinity",‏ "Infinity War",‏ "Avengers Infinity War". באופן דומה, מהמסמך השני אנחנו יוצרים את "Harry",‏ "Potter",‏ "Harry Potter".

כששולחים שאילתה למקור הנתונים הזה, נניח שהמשתמש מתחיל להקליד "h". ההצעות שיוצגו למשתמש יהיו:

  • רועי
  • הרמיוני
  • Hulk
  • הארי פוטר

נניח שהמשתמש בחר בהצעה של ההשלמה האוטומטית 'Hermione' והקשה הבאה של המשתמש היא התו 'a'. ההצעות להשלמה האוטומטית שיוצגו למשתמש יהיו:

  • הרפתקה עם הרמיוני
  • Hermione Action
  • Hermione Avengers

ההשלמה האוטומטית מנסה להשלים את המילה האחרונה (או ה-ngram) שמקלידים. בדוגמה הקודמת, הפונקציה רק מרחיבת את 'a' ל-'adventure', ל-'action' ול-'avengers', כי אין טקסט שמתחיל ב-'hermione a' ביחד. ההצעה הזו נקראת 'הצעה לחלק האחרון', והיא מבוססת על השלמה אוטומטית של המילה האחרונה או ה-n-gram האחרון שהקלדתם.

ההשלמה האוטומטית של Cloud Search מחזירה עד 5 הצעות מתוכן המסמך ו-2 הצעות לאנשים.

כברירת מחדל, ביטויים מכותרות המסמכים מוצגים בהשלמה האוטומטית. כדי ש-Suggest API יוכל להשלים אוטומטית את השם והערכים של הנכס התואם, צריך לסמן את מאפייני ה-Schema כ-is_suggestable באופן מפורש.

שילוב עם Autocomplete API

אם אתם משתמשים באפליקציית החיפוש שמוגדרת כברירת מחדל או בווידג'ט החיפוש שניתן להטמיע, תכונת ההשלמה האוטומטית של Cloud Search נתמכת באופן מקורי בלי צורך לבצע פעולות נוספות. חשוב לזכור שכברירת מחדל, משפטים מכותרות המסמכים מוצגים בהשלמה האוטומטית. כדי שממשק ה-API להצעות יוכל להשלים אוטומטית את השם והערכים של הנכס התואם, צריך לסמן את מאפייני ה-Schema כ-is_suggestable באופן מפורש.

אם אתם מפתחים אפליקציית חיפוש בהתאמה אישית, תוכלו להשתמש בהשלמה האוטומטית על ידי שליחת שאילתה לנקודות הקצה של ה-API‏ /query/suggest.

מגבלות

אלו המגבלות של ההשלמה האוטומטית:

  • אי אפשר להגביל את ביטויי ההשלמה האוטומטית של Cloud Search באמצעות הערך FilterOptions שמוגדר בסכימה, מלבד המסננים המובנים הבאים: objectype, ‏ mimetype ומסנני טיפוס.

  • אין תמיכה בהצעות שמבוססות על היסטוריית השאילתות (חיפושים שהמשתמש ביצע בעבר באפליקציית חיפוש)

  • אפשר לסמן עד 20 נכסים בתור is_suggestable. כדי להגדיל את המגבלה הזו, צריך לפנות לתמיכה של Cloud Search.

  • ההשלמה האוטומטית של אופרטורי החיפוש לא זמינה לנכסים עם exact_match_with_operator.

  • ההשלמה האוטומטית של Cloud Search מחזירה עד 5 הצעות מתוכן המסמך ו-2 הצעות לאנשים.

  • ההשלמה האוטומטית של Cloud Search מציעה ביטויים רק מהמסמכים שיש למשתמש גישה אליהם.