खोज की क्वालिटी को बेहतर बनाएं

Search की क्वालिटी से, खोज के नतीजों की क्वालिटी का पता चलता है. यह क्वालिटी, रैंकिंग और रीकॉल के हिसाब से तय की जाती है. रीकॉल का मतलब है कि खोज क्वेरी करने वाले उपयोगकर्ता को नतीजे कितने काम के लगे.

रैंकिंग का मतलब है आइटम का क्रम और रीकॉल का मतलब है काम के आइटम की संख्या. आइटम (इसे दस्तावेज़ भी कहा जाता है) ऐसा डिजिटल कॉन्टेंट होता है जिसे Google Cloud Search इंडेक्स कर सकता है. आइटम के टाइप में, Microsoft Office दस्तावेज़, PDF फ़ाइलें, डेटाबेस की कोई पंक्ति, यूनीक यूआरएल वगैरह शामिल हैं. किसी आइटम में ये चीज़ें शामिल होती हैं:

  • स्ट्रक्चर्ड मेटाडेटा
  • इंडेक्स किया जा सकने वाला कॉन्टेंट
  • ACL

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

एचटीएमएल दस्तावेज़ों के मामले में, <title> और <h1> जैसे टैग के साथ-साथ, फ़ॉन्ट साइज़ और बोल्ड करने जैसी फ़ॉर्मैटिंग सेटिंग का इस्तेमाल, अलग-अलग शब्दों की अहमियत तय करने के लिए किया जाता है. अगर ContentFormat TEXT है, तो ItemContent को फिर से पाने की ज़रूरत DEFAULT है. अगर यह एचटीएमएल है, तो फिर से पाने की ज़रूरत एचटीएमएल प्रॉपर्टी के आधार पर तय की जाती है.

डेटा अपडेट होने की फ़्रीक्वेंसी

डेटा अपडेट होने की फ़्रीक्वेंसी या इंटरवल से पता चलता है कि किसी आइटम में हाल ही में बदलाव किया गया है या नहीं. यह जानकारी, ItemMetadata में मौजूद createTime और updateTime प्रॉपर्टी से मिलती है. पुराने आइटम, खोज के नतीजों में नीचे की ओर दिखते हैं..

स्कीमा में FreshnessOptions के freshnessProperty और freshnessDuration को अडजस्ट करके, किसी ऑब्जेक्ट के लिए अपडेट होने की फ़्रीक्वेंसी का हिसाब लगाने के तरीके पर असर डाला जा सकता है.

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
        }
      },
    }
  ]
}

क्वालिटी पर असर

क्वालिटी से किसी आइटम की सटीक और काम की जानकारी का पता चलता है. किसी डेटा सोर्स में, एक जैसे कई दस्तावेज़ हो सकते हैं. हालांकि, हर दस्तावेज़ की क्वालिटी अलग-अलग हो सकती है. SearchQualityMetadata का इस्तेमाल करके, क्वालिटी की वैल्यू 0 से 1 के बीच तय की जा सकती है. ज़्यादा वैल्यू वाले आइटम की रैंकिंग, कम वैल्यू वाले आइटम की तुलना में बेहतर होती है. इस सेटिंग का इस्तेमाल सिर्फ़ तब करें, जब आपको 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 (क्वालिटी .5) और समस्या 1 (अगर कुछ नहीं बताया गया है, तो डिफ़ॉल्ट क्वालिटी 0) से ज़्यादा होती है.

फ़ील्ड टाइप का इस्तेमाल करके असर

Cloud Search की मदद से, सूची या पूर्णांक प्रॉपर्टी की वैल्यू के आधार पर रैंकिंग में बदलाव किया जा सकता है. हर इंटिजर या एनम प्रॉपर्टी के लिए, एक OrderedRanking तय किया जा सकता है. इस सेटिंग में ये वैल्यू होती हैं:

  • NO_ORDER (डिफ़ॉल्ट): इस प्रॉपर्टी से रैंकिंग पर कोई असर नहीं पड़ता.
  • ASCENDING: इस इंटिजर या enum प्रॉपर्टी की ज़्यादा वैल्यू वाले आइटम को, कम वैल्यू वाले आइटम की तुलना में रैंकिंग में बढ़ोतरी मिलती है.
  • DESCENDING: इंटिजर या enum प्रॉपर्टी की कम वैल्यू वाले आइटम को, ज़्यादा वैल्यू वाले आइटम की तुलना में रैंकिंग में बढ़ोतरी मिलती है.

उदाहरण के लिए, मान लें कि बग ट्रैकिंग सिस्टम में हर बग के लिए एक एनम प्रॉपर्टी होती है. इस प्रॉपर्टी में, बग की प्राथमिकता को HIGH (1), MEDIUM (2) या LOW (3) के तौर पर सेव किया जाता है. इस स्थिति में, DESCENDING के लिए OrderedRanking सेट करने पर, प्राथमिकता वाली LOW गड़बड़ियों की तुलना में, प्राथमिकता वाली HIGH गड़बड़ियों की रैंकिंग में बढ़ोतरी होती है. यहां एक सैंपल स्कीमा दिया गया है, जिसमें बग ट्रैकिंग सिस्टम में समस्याओं के लिए 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 प्रॉपर्टी का इस्तेमाल किया जा सकता है. इस मामले में, votes प्रॉपर्टी के लिए ASCENDING के तौर पर OrderedRanking को तय किया जा सकता है, ताकि सबसे ज़्यादा वोट वाली समस्याओं को रैंकिंग में बढ़ोतरी मिले. यहां बग ट्रैकिंग सिस्टम में समस्याओं के लिए 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 Search के सार्वजनिक डेटा का इस्तेमाल करके बनाए गए मॉडल के आधार पर, वर्तनी के सुझाव देता है. अगर Cloud Search को किसी क्वेरी के कॉन्टेक्स्ट में गलत स्पेलिंग का पता चलता है, तो वह SpellResult में सुझाई गई क्वेरी दिखाता है. सुझाई गई स्पेलिंग, उपयोगकर्ता को सुझाव के तौर पर दिखाई जा सकती है. उदाहरण के लिए, हो सकता है कि उपयोगकर्ता ने क्वेरी के लिए “employe” शब्द को गलत तरीके से लिखा हो और उसे यह सुझाव मिले, “क्या आपका मतलब कर्मचारी था?”

Cloud Search, वर्तनी की गलतियां ठीक करने की सुविधा का इस्तेमाल, मिलते-जुलते शब्दों के तौर पर भी करता है. इससे ऐसे दस्तावेज़ों को ढूंढने में मदद मिलती है जो स्पेलिंग की गड़बड़ी की वजह से नहीं मिलते.

खोज ऐप्लिकेशन की सेटिंग की मदद से रैंकिंग पर असर डालना

Google Cloud Search के बारे में जानकारी में बताया गया है कि सर्च ऐप्लिकेशन, सेटिंग का एक ग्रुप होता है. जब इसे सर्च इंटरफ़ेस से जोड़ा जाता है, तो यह खोजों के बारे में काम की जानकारी देता है. इन कॉन्फ़िगरेशन की मदद से, खोज ऐप्लिकेशन के ज़रिए रैंकिंग पर असर डाला जा सकता है:

  • स्कोरिंग कॉन्फ़िगरेशन
  • डेटा इंपोर्ट करने का कॉन्फ़िगरेशन

नीचे दिए गए दो सेक्शन में बताया गया है कि ये कॉन्फ़िगरेशन, रैंकिंग पर असर डालने में कैसे मददगार होते हैं.

स्कोरिंग कॉन्फ़िगरेशन में बदलाव करना

हर सर्च ऐप्लिकेशन के लिए, ScoringConfig तय किया जा सकता है. इसका इस्तेमाल, रैंकिंग के दौरान कुछ सिग्नल के इस्तेमाल को कंट्रोल करने के लिए किया जाता है. फ़िलहाल, आपके पास अप-टू-डेट और पसंद के मुताबिक सेटिंग बंद करने का विकल्प है.

अगर डेटा अपडेट होने की फ़्रीक्वेंसी की सेटिंग बंद है, तो यह खोज ऐप्लिकेशन में सूची में शामिल सभी डेटा सोर्स के लिए बंद हो जाती है. भले ही, डेटा सोर्स के लिए स्कीमा में डेटा अपडेट होने की फ़्रीक्वेंसी के विकल्प तय किए गए हों. इसी तरह, अगर मनमुताबिक बनाने की सुविधा बंद है, तो मालिकाना हक और इंटरैक्शन के लिए मिलने वाले बूस्टर का असर रैंकिंग पर नहीं पड़ता.

इस सेटिंग को कॉन्फ़िगर करने के सिलसिलेवार निर्देश पाने के लिए, Cloud Search में खोज के अनुभव को पसंद के मुताबिक बनाना लेख पढ़ें.

सोर्स कॉन्फ़िगरेशन में बदलाव करना

सोर्स कॉन्फ़िगरेशन की मदद से, खोज ऐप्लिकेशन में डेटा सोर्स-लेवल की सेटिंग तय की जा सकती हैं. ये सेटिंग काम करती हैं:

  • सोर्स का महत्व
  • क्राउडिंग

सोर्स की अहमियत सेट करना

सोर्स की अहमियत से पता चलता है कि खोज ऐप्लिकेशन में किसी डेटा सोर्स की अहमियत क्या है. इस सेटिंग को SourceScoringConfig में मौजूद SourceImportance फ़ील्ड में तय किया जा सकता है. HIGH सोर्स की अहमियत वाले डेटा सोर्स के आइटम की रैंकिंग, DEFAULT या LOW सोर्स की अहमियत वाले डेटा सोर्स के आइटम की तुलना में बेहतर होती है. अगर आपको लगता है कि उपयोगकर्ता कुछ डेटा सोर्स के नतीजों को प्राथमिकता देंगे, तो रैंकिंग पर असर डालने के लिए इस सेटिंग का इस्तेमाल करें.

उदाहरण के लिए, मान लें कि आपके पास प्रॉडक्ट के लिए सहायता पोर्टल है, जिसमें समस्या हल करने से जुड़ा बाहरी और अंदरूनी डेटा शामिल है. इस स्थिति में, हो सकता है कि आप अपने खोज ऐप्लिकेशन को कॉन्फ़िगर करना चाहें, ताकि इंटरनल डेटा सोर्स के नतीजों को प्राथमिकता दी जा सके.

इस सेटिंग को कॉन्फ़िगर करने के सिलसिलेवार निर्देश पाने के लिए, Cloud Search में खोज के अनुभव को पसंद के मुताबिक बनाना लेख पढ़ें.

भीड़-भाड़ से जुड़ी सेटिंग सेट करना

ज़्यादा नतीजे से, खोज ऐप्लिकेशन में किसी डेटा सोर्स से मिलने वाले ज़्यादा से ज़्यादा नतीजों की संख्या का पता चलता है. इस वैल्यू को SourceCrowdingConfig में numResults फ़ील्ड का इस्तेमाल करके कंट्रोल किया जा सकता है. यह वैल्यू डिफ़ॉल्ट रूप से 3 पर सेट होती है. इसका मतलब है कि अगर हमने किसी डेटा सोर्स से तीन नतीजे दिखाए हैं, तो Cloud Search दूसरे डेटा सोर्स के नतीजे दिखाना शुरू कर देता है. पहले डेटा सोर्स के आइटम पर सिर्फ़ तब फिर से विचार किया जाता है, जब सभी डेटा सोर्स में आइटम की संख्या तय सीमा तक पहुंच गई हो या दूसरे डेटा सोर्स से कोई नतीजा न मिला हो.

यह सेटिंग, खोज के नतीजों में अलग-अलग तरह के नतीजे दिखाने में मदद करती है. साथ ही, इससे किसी एक डेटा सोर्स को खोज के नतीजों के पेज पर हावी होने से रोका जा सकता है.

इस सेटिंग को कॉन्फ़िगर करने के सिलसिलेवार निर्देश पाने के लिए, Cloud Search में खोज के अनुभव को पसंद के मुताबिक बनाना लेख पढ़ें.

मनमुताबिक बनाने की सुविधा की मदद से रैंकिंग पर असर डालना

मनमुताबिक़ बनाना का मतलब है, खोज के नतीजों को उपयोगकर्ता के हिसाब से दिखाना. इन शर्तों के आधार पर आइटम को प्राथमिकता देकर, रैंकिंग पर असर डाला जा सकता है:

  • आइटम का मालिकाना हक
  • आइटम से इंटरैक्शन
  • उपयोगकर्ता के क्लिक
  • आइटम की भाषा

यहां दिए गए तीन सेक्शन में, इन शर्तों के आधार पर खोज की क्वालिटी को बेहतर बनाने के बारे में बताया गया है.

आइटम के मालिकाना हक के आधार पर रैंकिंग पर असर

आइटम का मालिकाना हक से, खोज क्वेरी करने वाले उपयोगकर्ता के मालिकाना हक वाले आइटम की रैंकिंग को बेहतर बनाने का मतलब है. हर आइटम में एक owners फ़ील्ड वाला ItemAcl होता है. अगर क्वेरी करने वाला उपयोगकर्ता किसी आइटम का मालिक है, तो डिफ़ॉल्ट रूप से, उस आइटम की रैंकिंग में बढ़ोतरी होती है. Search ऐप्लिकेशन में, खोज के नतीजों को मनमुताबिक बनाने की सेटिंग को बंद किया जा सकता है.

आइटम के इंटरैक्शन के आधार पर रैंकिंग बढ़ाना

आइटम इंटरैक्शन का मतलब उन आइटम की रैंकिंग को बेहतर बनाना है जिनसे खोज क्वेरी वाले उपयोगकर्ता ने इंटरैक्ट किया है. जैसे, देखना, टिप्पणी करना, बदलाव करना वगैरह.

Drive और Gmail जैसे Google Workspace के प्रॉडक्ट के लिए, आइटम के इंटरैक्शन के सिग्नल अपने-आप मिल जाते हैं. अन्य प्रॉडक्ट के लिए, आइटम-लेवल पर इंटरैक्शन का डेटा दिया जा सकता है. इसमें इंटरैक्शन का टाइप (देखना, बदलाव करना), इंटरैक्शन का टाइमस्टैंप, और प्रिंसिपल (वह उपयोगकर्ता जिसने आइटम के साथ इंटरैक्ट किया) शामिल है. ध्यान दें कि हाल ही में हुए इंटरैक्शन वाले आइटम की रैंकिंग में ज़्यादा बढ़ोतरी होती है.

उपयोगकर्ता के क्लिक के आधार पर रैंकिंग बढ़ाना

Cloud Search, खोज के मौजूदा नतीजों पर मिले क्लिक इकट्ठा करता है. साथ ही, इनका इस्तेमाल करके आने वाले समय में की जाने वाली खोजों के लिए रैंकिंग को बेहतर बनाता है. इसके लिए, वह उस उपयोगकर्ता के उन आइटम को बढ़ावा देता है जिन पर उसने पहले क्लिक किया था.

क्वेरी के हिसाब से कॉन्टेंट दिखाने की सुविधा की मदद से रैंकिंग पर असर डालना

Cloud Search की क्वेरी के बारे में जानकारी देने वाली सुविधा, उपयोगकर्ता की क्वेरी में ऑपरेटर और फ़िल्टर का अपने-आप विश्लेषण करती है. साथ ही, उन एलिमेंट को ऑपरेटर पर आधारित क्वेरी में बदल देती है. क्वेरी का विश्लेषण करने के लिए, इंडेक्स किए गए दस्तावेज़ों के साथ-साथ स्कीमा में तय किए गए ऑपरेटर का इस्तेमाल किया जाता है. इससे यह पता चलता है कि उपयोगकर्ता की क्वेरी का क्या मतलब है. इस सुविधा की मदद से, उपयोगकर्ता कम से कम कीवर्ड का इस्तेमाल करके भी सटीक नतीजे पा सकता है. ज़्यादा जानकारी के लिए, क्वेरी को बेहतर तरीके से समझने के लिए स्कीमा बनाना लेख पढ़ें.

आइटम की भाषा के आधार पर रैंकिंग बढ़ाना

भाषा से उन आइटम की रैंकिंग में गिरावट का मतलब है जिनकी भाषा, क्वेरी की भाषा से मेल नहीं खाती. भाषा के आधार पर आइटम की रैंकिंग पर इन बातों का असर पड़ता है:

  • क्वेरी लैंग्वेज. खोज क्वेरी की भाषा, जो अपने-आप पहचानी गई हो या फिर RequestOptions में बताई गई languageCode.

    अगर आपने कस्टम सर्च इंटरफ़ेस बनाया है, तो आपको languageCode को उपयोगकर्ता के इंटरफ़ेस की भाषा या भाषा की प्राथमिकता पर सेट करना चाहिए. उदाहरण के लिए, वेब ब्राउज़र या खोज इंटरफ़ेस पेज की भाषा. अपने-आप पहचानी गई क्वेरी की भाषा, languageCode से ज़्यादा प्राथमिकता पाती है. इससे, जब कोई उपयोगकर्ता अपने इंटरफ़ेस से अलग भाषा में क्वेरी टाइप करता है, तो खोज की क्वालिटी पर असर नहीं पड़ता.

  • आइटम की भाषा. इंडेक्स करने के समय ItemMetadata में सेट किया गया contentLanguage या कॉन्टेंट की वह भाषा जिसका पता 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"
      ],
    }
  ],
  ...
}

इंडेक्स किए गए आइटम और खोज के अनुरोध, दोनों में "डिपार्टमेंट=इंजीनियरिंग" और "जगह=अमेरिका" एट्रिब्यूट शामिल हैं. इसलिए, इंडेक्स किया गया आइटम (कर्मचारी के फ़ायदे से जुड़ा दस्तावेज़), खोज के नतीजों में सबसे ऊपर दिखता है.

अब मान लें कि भारत में रहने वाला एक इंजीनियर, खोज इंटरफ़ेस में "फ़ायदे" खोज क्वेरी डालता है. यहां खोज के लिए किया गया एक अनुरोध दिया गया है. इसमें, कर्मचारी की जगह और विभाग की जानकारी शामिल है:

{
  ...
  "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वैकल्पिकअगर डेटा सोर्स, उपयोगकर्ता के इंटरैक्शन को रिकॉर्ड करता है और उसका ऐक्सेस देता है, तो इंडेक्स करने के दौरान हर आइटम के लिए इंटरैक्शन अपने-आप भर जाएंगे.
integer/enum प्रॉपर्टीOrderedRankingवैकल्पिकजब आइटम का क्रम काम का हो, तो इंडेक्स करने के दौरान इंटीजर और एनम प्रॉपर्टी के लिए, क्रम से लगाई गई रैंकिंग की जानकारी दें.
ऐप्लिकेशन की सेटिंग खोजना
Personalization=falseScoringConfig या CloudSearch के एडमिन यूज़र इंटरफ़ेस का इस्तेमाल करकेसुझाए गएसर्च ऐप्लिकेशन बनाते या अपडेट करते समय. पक्का करें कि आपने मालिकाना हक की सही जानकारी दी हो. इस बारे में ज़्यादा जानने के लिए, 'पसंद के मुताबिक बनाने की सुविधा की मदद से, रैंकिंग पर असर डालना' लेख पढ़ें
SourceImportance फ़ील्डSourceCrowdingConfigवैकल्पिककुछ डेटा सोर्स के नतीजों में बदलाव करने के लिए, यह फ़ील्ड सेट करें.
numResults फ़ील्डSourceCrowdingConfigवैकल्पिकअलग-अलग तरह के नतीजे पाने के लिए, यह फ़ील्ड सेट करें.

अगले चरण

यहां कुछ ऐसे तरीके दिए गए हैं जिनका इस्तेमाल करके, इस समस्या को हल किया जा सकता है:

  1. क्वेरी को बेहतर तरीके से समझने के लिए स्कीमा बनाएं.

  2. अपनी कंपनी में आम तौर पर इस्तेमाल होने वाले शब्दों के लिए, मिलते-जुलते शब्द तय करने के लिए, _dictionaryEntry स्कीमा का फ़ायदा पाने का तरीका जानें. _dictionaryEntry स्कीमा का इस्तेमाल करने के लिए, समानार्थी शब्द तय करना लेख पढ़ें.