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

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

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

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

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

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

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

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

השלבים הבאים

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

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

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