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

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

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

ה-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 שנוצר כתוצאה מהם ומשמש להשלמה אוטומטית

ממסמך 1, אנחנו מחלצים n-גרמות (עד טריגרמות) 'הנוקמים', ‏'מלחמת', ‏'האינסוף', ‏'הנוקמים מלחמת', ‏'מלחמת האינסוף', ‏'הנוקמים מלחמת האינסוף'. באופן דומה, ממסמך 2, אנחנו יוצרים את 'הארי', ‏'פוטר', ‏'הארי פוטר'.

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

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

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

  • הרפתקה של הרמיוני
  • פעולת Hermione
  • Hermione Avengers

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

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

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

שילוב עם Autocomplete API

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

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

מגבלות

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

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

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

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

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

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

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