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

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

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

ב-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"
      ],
    }
  ],
  ...
}

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

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

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

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

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

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

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

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

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

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

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

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

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

השלבים הבאים

אפשר לנסות את הפתרונות הבאים:

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

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