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

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

דירוג מתייחס לסדר הפריטים, והחזרה מתייחסת למספר הפריטים הרלוונטיים שאוחזרו. פריט (שנקרא גם מסמך) הוא כל פיסת תוכן דיגיטלי ש-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 או מספרים שלמים. לכל מאפיין מסוג מספר שלם או 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. האיות המוצע יכול להיות מוצג למשתמש כהצעה. לדוגמה, יכול להיות שהמשתמש יקליד את המילה 'עובד' עם שגיאת כתיב, ואז תופיע ההצעה 'התכוונת לכתוב עובד?'.

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

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

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

  • הגדרות הניקוד
  • הגדרת המקור

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

שינוי הגדרות הניקוד

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

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

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

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

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

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

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

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

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

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

הגדרת צפיפות

הצפה היא המספר המקסימלי של תוצאות שאפשר להחזיר ממקור נתונים באפליקציית חיפוש. אפשר לשלוט בערך הזה באמצעות השדה 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"
      ],
    }
  ],
  ...
}

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

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

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

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

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

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

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

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

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

הגדרהמיקוםמומלץ/אופציונליפרטים
הגדרות סכימה
שדה ItemContentItemContentמומלץכשיוצרים או מעדכנים את הסכימה, מאכלסים את התוכן הלא מובנה של פריט. השדה הזה משמש ליצירת תקצירים.
שדה RetrievalImportanceRetrievalImportanceמומלץכשיוצרים או מעדכנים סכימה, צריך להגדיר מאפייני טקסט שהם חשובים או רלוונטיים באופן ברור.
FreshnessOptionsFreshnessOptionsאופציונליכשיוצרים או מעדכנים סכימה, צריך להגדיר אותה כך שהפריטים לא יורדו בגלל נתונים שגויים או מקרים שבהם הנתונים חסרים.
הגדרות הוספה לאינדקס
createTime/updateTimeItemMetadataמומלץאכלוס במהלך יצירת אינדקס של פריט.
contentLanguageItemMetadataמומלץאכלוס במהלך יצירת אינדקס של פריט. אם לא מציינים שפה, Cloud Search מנסה לזהות את השפה שבה נעשה שימוש ב-ItemContent.
שדה ownersItemAcl()מומלץאכלוס במהלך יצירת אינדקס של פריט.
מילים נרדפות בהתאמה אישית_dictionaryEntry סכימהמומלץההגדרה מתבצעת ברמת מקור הנתונים או כמקור נתונים נפרד במהלך יצירת האינדקס.
שדה qualitySearchQualityMetadataאופציונליכדי לספק שיפור בסיסי באיכות בהשוואה לפריטים אחרים שדומים מבחינה סמנטית, צריך להגדיר את האיכות במהלך יצירת האינדקס. הגדרת השדה הזה לכל הפריטים במקור נתונים מבטלת את ההשפעה שלו.
נתוני אינטראקציה ברמת הפריטinteractionאופציונליאם מקור הנתונים מתעד אינטראקציות של משתמשים ומספק גישה אליהן, צריך לאכלס את האינטראקציות עבור כל פריט במהלך יצירת האינדקס.
מאפייני מספרים שלמים או מאפייני enumOrderedRankingאופציונליכשסדר הפריטים רלוונטי, מציינים את הדירוג הממוספר של מאפייני מספר שלם ומאפייני enum במהלך יצירת האינדקס.
הגדרות של אפליקציית חיפוש
Personalization=falseScoringConfig או באמצעות ממשק המשתמש לניהול של CloudSearchמומלץכשיוצרים או מעדכנים את אפליקציית החיפוש. חשוב לספק את פרטי הבעלים הנכונים כפי שמתואר במאמר שיפור הדירוג באמצעות התאמה אישית
שדה SourceImportanceSourceCrowdingConfigאופציונליכדי להטות את התוצאות ממקורות נתונים מסוימים, צריך להגדיר את השדה הזה.
שדה numResultsSourceCrowdingConfigאופציונליכדי לשלוט בגיוון התוצאות, צריך להגדיר את השדה הזה.

השלבים הבאים

הנה כמה שלבים אפשריים:

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

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