שיפור איכות החיפוש

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

דירוג מתייחס לסדר הפריטים, ואחזור מתייחס למספר הפריטים הרלוונטיים שאוחזרו. פריט (נקרא גם מסמך) הוא כל קטע של תוכן דיגיטלי ש-Google Cloud Search יכול להוסיף לאינדקס. סוגי הפריטים כוללים מסמכי Microsoft Office, קובצי PDF, שורה במסד נתונים, כתובות URL ייחודיות וכו'. פריט מורכב מ:

  • מטא-נתונים מובנים
  • תוכן שניתן להוסיף לאינדקס
  • ACLs (רשימות בקרת גישה)

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

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

השפעה על ציון הנושאים

נושא מתייחס לרלוונטיות של תוצאת החיפוש למונחי השאילתה המקוריים. המיקום של פריט מחושב על סמך הקריטריונים הבאים:

  • החשיבות של כל מונח שאילתה.
  • מספר ההתאמות (מספר הפעמים שמונח שאילתה מופיע בתוכן או במטא נתונים של הפריט).
  • סוג ההתאמה למונח השאילתה והווריאציות שלהן כוללים פריט שנוסף לאינדקס ב-Cloud Search.

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

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

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

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

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

{
  "objectDefinitions": [
    {
      "name": "issues",
      "propertyDefinitions": [
        {
          "name": "summary",
          "textPropertyOptions": {
            "retrievalImportance": {
              "importance": HIGHEST
              }
            }
          },
        {
          "name": "description",
          "textPropertyOptions": {
            "retrievalImportance": {
              "importance": DEFAULT
              }
            }
          },
        {
          "name": "label",
            "isRepeatable": true,
          "textPropertyOptions": {
            "retrievalImportance": {
              "importance": DEFAULT
              }
            }
          },
        {
          "name": "comments",
          "textPropertyOptions": {
            "retrievalImportance": {
              "importance": DEFAULT
              }
            }
          },
        {
          "name": "project",
          "textPropertyOptions": {
            "retrievalImportance": {
              "importance": HIGH
              }
            }
          },
        {
          "name": "duedate",
          "datePropertyOptions": {
          }
        },
        ...
      ]
    }
  ]
}

במקרה של מסמכי HTML, תגים כמו <title> ו-<h1>, יחד עם הגדרות עיצוב כמו גודל הגופן והדגשה, משמשים לקביעת החשיבות של מונחים שונים. אם הערך של ContentFormat הוא TEXT, לItemContent יש חשיבות האחזור של DEFAULT ואם הוא HTML, חשיבות האחזור שלו נקבעת על סמך מאפייני HTML.

השפעה על עדכניות

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

אפשר להשפיע על אופן החישוב של העדכניות של אובייקט על ידי התאמת הערכים freshnessProperty ו-freshnessDuration של FreshnessOptions בסכימה.

באמצעות הפונקציה freshnessProperty אפשר להשתמש במאפייני תאריך או חותמת זמן לצורך חישוב העדכניות במקום בברירת המחדל updateTime.

בדוגמה הקודמת שלנו למערכת למעקב אחר באגים בתוכנה, תאריך היעד יכול לשמש כ-freshnessProperty, כך שפריטים עם תאריך יעד הקרוב ביותר לתאריך הנוכחי ייחשבו כ'עדכניים יותר' ויקבלו העלאה בדירוג. לפניכם סכימה לדוגמה שמכילה הגדרות של freshnessProperty:

{
  "objectDefinitions": [
    {
      "name": "issues",
      "options": {
        "freshnessOptions": {
          "freshnessProperty": "duedate"
        }
      },
      "propertyDefinitions": [
        {
          "name": "summary",
          "textPropertyOptions": {
            "retrievalImportance": {
              "importance": HIGHEST
            }
          }
        },
        {
          "name": "duedate",
          "datePropertyOptions": {
          }
        },
        ...
      ]
    }
  ]
}

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

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

{
  "objectDefinitions": [
    {
      "name": "people",
      "options": {
        "freshnessOptions": {
          "freshnessDuration": "315360000s", # 100 years
        }
      },
    }
  ]
}

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

{
  "objectDefinitions": [
    {
      "name": "news",
      "options": {
        "freshnessOptions": {
          "freshnessDuration": "259200s", # 3 days
        }
      },
    }
  ]
}

השפעה על האיכות

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

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

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

{
  "name": "datasources/.../items/issue1",
  "acl": {
    ...
  },
  "metadata": {
    "title": "Issue 1"
    "objectType": "issues"
  },
  ...
}

{
  "name": "datasources/.../items/issue2",
  "acl": {
    ...
  },
  "metadata": {
    "title": "Issue 2"
    "objectType": "issues"
    "searchQualityMetadata": {
      "quality": 0.5
    }
  },
  ...
}

{
  "name": "datasources/.../items/issue3",
  "acl": {
    ...
  },
  "metadata": {
    "title": "Issue 3"
    "objectType": "issues"
    "searchQualityMetadata": {
      "quality": 1
    }
  },
  ...
}

בהתאם לסכימה הזו, כשמשתמש מבצע חיפוש באמצעות מונח החיפוש 'בעיה', בעיה 3 בסכימה (איכות 1) מדורגת גבוה יותר מבעיה 2 (איכות 0 .5) ומבעיה 1 (אם לא צוין שום דבר, איכות ברירת המחדל היא 0).

השפעה באמצעות סוג השדה

בעזרת Cloud Search אפשר להשפיע על הדירוג לפי הערך של טיפוסים בני מנייה (enum) או של מאפיינים של מספרים שלמים. אפשר לציין OrderedRanking לכל מספר שלם או טיפוס. ההגדרה הזו כוללת את הערכים הבאים:

  • NO_ORDER (ברירת המחדל): המאפיין לא משפיע על הדירוג.
  • ASCENDING: פריטים עם ערכים גבוהים יותר של המספר השלם או המאפיין טיפוסים בני מנייה (enum) מקבלים העלאה בדירוג בהשוואה לפריטים עם ערכים נמוכים יותר.
  • DESCENDING: פריטים עם ערכים נמוכים יותר של המספר השלם או המאפיין טיפוסים בני מנייה (enum) מקבלים תוספת דירוג בהשוואה לפריטים עם ערכים גבוהים יותר.

לדוגמה, נניח שלכל באג במערכת למעקב אחר באגים יש מאפיין enum לשמירת העדיפות של הבאג כ-HIGH (1), כ-MEDIUM (2) או כ-LOW (3). בתרחיש הזה, הגדרת OrderedRanking של DESCENDING משפרת את הדירוג לבאגים בעדיפות HIGH בהשוואה לבאגים בעדיפות LOW. לפניכם סכימה לדוגמה שמכילה הגדרות של OrderedRanking לבעיות במערכת למעקב אחר באגים:

{
  "objectDefinitions": [
    {
      "name": "issues",
      "options": {
        "freshnessOptions": {
          "freshnessProperty": "duedate",
        }
      },
      "propertyDefinitions": [
        {
          "name": "summary",
          "textPropertyOptions": {
            "retrievalImportance": {
              "importance": HIGHEST
            }
          }
        },
        {
          "name": "duedate",
          "datePropertyOptions": {
          }
        },
        {
          "name": "priority",
          "enumPropertyOptions": {
            "possibleValues": [
              {
                "stringValue": "HIGH",
                "integerValue": 1
              },
              {
                "stringValue": "MEDIUM",
                "integerValue": 2
              },
              {
                "stringValue": "LOW",
                "integerValue": 3
              }
            ],
            "orderedRanking": DESCENDING,
          }
        },

        ...
      ]
    }
  ]
}

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

{
  "objectDefinitions": [
    {
      "name": "issues",
      "propertyDefinitions": [
        {
          "name": "summary",
          "textPropertyOptions": {
            "retrievalImportance": {
              "importance": HIGHEST
            }
          }
        },
        {
          "name": "description",
          "textPropertyOptions": {
            "retrievalImportance": {
              "importance": DEFAULT
            }
          }
        },
        {
          "name": "votes",
          "integerPropertyOptions": {
            "orderedRanking": ASCENDING,
            "minimumValue": 0,
            "maximumValue": 1000,
          }
        },

        ...
      ]
    }
  ]
}

השפעה על הדירוג באמצעות הרחבת שאילתה

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

שימוש במילים נרדפות כדי להשפיע על תוצאות החיפוש

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

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

שימוש באיות כדי להשפיע על תוצאות החיפוש

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

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

השפעה על הדירוג באמצעות הגדרות של אפליקציית חיפוש

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

  • הגדרת הציון
  • הגדרת המקור

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

שינוי הגדרת הציון

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

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

לקבלת הוראות מפורטות להגדרת ההגדרה הזו, ראו התאמה אישית של חוויית החיפוש ב-Cloud Search.

שינוי ההגדרה של המקור

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

  • חשיבות המקור
  • קיבוץ באשכולות

הגדרת חשיבות של מקור

חשיבות המקור מתייחסת לחשיבות היחסית של מקור נתונים באפליקציית חיפוש. אפשר לציין את ההגדרה הזו בשדה SourceImportance בתוך SourceScoringConfig. פריטים ממקור נתונים עם חשיבות מקור HIGH מקבלים שיפור בדירוג בהשוואה לפריטים ממקור נתונים שיש להם חשיבות מקור עם DEFAULT או LOW. כדאי להשתמש בהגדרה הזו כדי להשפיע על הדירוג כשאתם סבורים שהמשתמשים מעדיפים תוצאות ממקורות נתונים מסוימים.

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

לקבלת הוראות מפורטות להגדרת ההגדרה הזו, ראו התאמה אישית של חוויית החיפוש ב-Cloud Search.

הגדרת צפיפות

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

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

לקבלת הוראות מפורטות להגדרת ההגדרה הזו, ראו התאמה אישית של חוויית החיפוש ב-Cloud Search.

השפעה על הדירוג באמצעות התאמה אישית

התאמה אישית: הצגה של תוצאות חיפוש מותאמות אישית על סמך המשתמש שניגש לתוצאה. אפשר להשפיע על הדירוג על ידי תעדוף הפריטים לפי הקריטריונים הבאים:

  • בעלות על פריט
  • אינטראקציה עם פריט
  • קליקים של משתמש
  • שפת הפריט

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

השפעה על הדירוג לפי בעלות על פריט

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

העלאת הדירוג על סמך אינטראקציה עם פריט

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

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

העלאת הדירוג על סמך קליקים של משתמשים

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

השפעה על דירוג באמצעות פרשנות שאילתה

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

העלאת הדירוג לפי שפת הפריט

שפה פירושה הורדת דירוג של פריטים שהשפה שלהם לא תואמת לשפת השאילתה. הגורמים הבאים משפיעים על דירוג הפריטים בהתאם לשפה:

  • שפת השאילתה. השפה של שאילתת החיפוש שזוהתה באופן אוטומטי, או השפה ב-languageCode שצוינה ב-RequestOptions.

    אם אתם יוצרים ממשק חיפוש מותאם אישית, עליכם להגדיר את languageCode לפי שפת הממשק או לפי העדפת השפה של המשתמש (לדוגמה, שפת דפדפן האינטרנט או דף ממשק החיפוש). שפת השאילתה שמזוהה באופן אוטומטי מקבלת עדיפות על פני languageCode, כך שאיכות החיפוש לא נפגעת כשמשתמש מקליד שאילתה בשפה ששונה מהממשק שלו.

  • שפת הפריט. contentLanguage שהוגדרה ב-ItemMetadata בזמן האינדקס, או שפת התוכן שזוהתה באופן אוטומטי על ידי Cloud Search.

    אם השדה contentLanguage של המסמך נשאר ריק בזמן האינדקס, וה-ItemContent מאוכלס, Cloud Search ינסה לזהות את השפה שמשמשת ב-ItemContent ולשמור אותה באופן פנימי. השפה שמזוהה באופן אוטומטי לא מתווספת לשדה contentLanguage.

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

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

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

לדוגמה, נניח שפריט רלוונטי יותר בהקשר של Location ושל Department, כמו עיר (San Francisco), מדינה (California), מדינה (USA) וDepartment (Engineering). במקרה כזה, אפשר להוסיף את הפריט לאינדקס עם המאפיינים בעלי השם הבאים:

{
  ...
  "metadata": {
    "contextAttributes": [
      {
        name: "Location"
        values: [
          "San Francisco",
          "California",
          "USA"
        ],
      },
      {
        name: "Department"
        values: [
          "Engineering"
        ],
      }
    ],
  },
  ...
}

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

{
  ...
  "contextAttributes": [
    {
      name: "Location"
      values: [
        "Chicago",
        "Illinois",
        "USA"
      ],
    },
    {
      name: "Department"
      values: [
        "Engineering"
      ],
    }
  ],
  ...
}

מכיוון שגם הפריט שנוסף לאינדקס וגם בקשת החיפוש מכילים את המאפיינים "Department=Engineering" ו-"Location=USA", הפריט שנוסף לאינדקס (מסמך בנושא הטבות לעובדים) מופיע במקום גבוה יותר בתוצאות החיפוש.

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

{
  ...
  "contextAttributes": [
    {
      name: "Location"
      values: [
        "Bengaluru",
        "Karnataka",
        "India"
      ],
    },
    {
      name: "Department"
      values: [
        "Engineering"
      ],
    }
  ],
  ...
}

מכיוון שגם הפריט שנוסף לאינדקס וגם בקשת החיפוש בלבד מכילים את המאפיין 'מחלקה=הנדסה', הפריט שנוסף לאינדקס מופיע במיקום גבוה יותר בתוצאות החיפוש (בהשוואה לשאילתת החיפוש הראשונה, שקשורה לשאילתת החיפוש 'יתרונות', שאותה הזינו מהנדס בשיקגו אילינוי, ארה"ב).

הנה כמה הקשרים לדוגמה שכדאי להשתמש בהם כדי לשפר את הדירוג:

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

השפעה על הדירוג על סמך הפופולריות של הפריטים

שירות Cloud Search מגדיל את הדירוג של פריטים פופולריים, כלומר, את הפריטים שקיבלו קליקים בשאילתות החיפוש האחרונות.

השפעה על הדירוג באמצעות עידוד קליקים

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

סיכום של הגדרות מומלצות והגדרות אופציונליות של איכות החיפוש

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

ההגדרהמיקוםמומלץ/אופציונליפרטים
הגדרות הסכימה
שדה אחד (ItemContent)ItemContentמומלץכשיוצרים או מעדכנים סכימה, צריך לאכלס את התוכן הלא מובנה של פריט. השדה הזה משמש ליצירת קטעי מידע.
שדה אחד (RetrievalImportance)RetrievalImportanceמומלץכשיוצרים או מעדכנים סכימה, צריך להגדיר מאפייני טקסט שהם נושאים חשובים או רלוונטיים בבירור.
FreshnessOptionsFreshnessOptionsאופציונליכשיוצרים או מעדכנים סכימה, חשוב לוודא שפריטים לא יורדים בדרגה בגלל נתונים שגויים או מקרים שבהם חסרים נתונים.
הגדרות להוספה לאינדקס
createTime/updateTimeItemMetadataמומלץאכלוס במהלך הוספת פריט לאינדקס.
contentLanguageItemMetadataמומלץאכלוס במהלך הוספת פריט לאינדקס. אם התג חסר, Cloud Search ינסה לזהות את השפה בItemContent.
שדה אחד (owners)ItemAcl()מומלץאכלוס במהלך הוספת פריט לאינדקס.
מילים נרדפות בהתאמה אישיתסכימה אחת (_dictionaryEntry)מומלץיש להגדיר ברמת מקור הנתונים או כמקור נתונים נפרד במהלך ההוספה לאינדקס.
שדה אחד (quality)SearchQualityMetadataאופציונליכדי לשפר את האיכות הבסיסית בהשוואה לפריטים אחרים שדומים מבחינה סמנטית, צריך להגדיר את האיכות במהלך ההוספה לאינדקס. הגדרת השדה הזה לכל הפריטים במקור נתונים מבטלת את ההשפעה שלו.
נתוני אינטראקציה ברמת הפריטinteractionאופציונליאם מקור הנתונים מתעד ומספק גישה לאינטראקציות של המשתמש, צריך לאכלס את האינטראקציות של כל פריט במהלך ההוספה לאינדקס.
מאפייני מספר שלם/טיפוסי טיפוסOrderedRankingאופציונליכשסדר הפריטים רלוונטי, מציינים את הדירוג מסודר של מאפייני מספרים שלמים ומאפייני טיפוס (enum) במהלך ההוספה לאינדקס.
הגדרות של אפליקציית חיפוש
Personalization=falseScoringConfig או באמצעות ממשק המשתמש של CloudSearch לאדמיניםמומלץכשיוצרים או מעדכנים את אפליקציית החיפוש. חשוב לספק את פרטי הבעלים הנכונים, כפי שמתואר בקטע 'השפעה על הדירוג' באמצעות התאמה אישית
שדה אחד (SourceImportance)SourceCrowdingConfigאופציונליכדי להטות את התוצאות ממקורות מסוימים של נתונים, צריך להגדיר את השדה הזה.
שדה אחד (numResults)SourceCrowdingConfigאופציונלייש להגדיר את השדה הזה כדי לשלוט במגוון התוצאות.

השלבים הבאים

הנה כמה שלבים שתוכלו לבצע:

  1. בניית סכימה לפרשנות אופטימלית של שאילתות.

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