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

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

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

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

Cloud Search की मदद से, enum या पूर्णांक प्रॉपर्टी की वैल्यू के आधार पर रैंकिंग को बेहतर बनाया जा सकता है. हर पूर्णांक या enum प्रॉपर्टी के लिए, 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 प्रॉपर्टी के लिए OrderedRanking को ASCENDING के तौर पर सेट किया जा सकता है, ताकि जिन समस्याओं को सबसे ज़्यादा वोट मिले हैं उनकी रैंकिंग बेहतर हो सके. यहां एक सैंपल स्कीमा दिया गया है. इसमें बग ट्रैकिंग सिस्टम में मौजूद समस्याओं के लिए 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, Google Search के सार्वजनिक डेटा का इस्तेमाल करके बनाए गए मॉडल के आधार पर, स्पेलिंग के सुझाव देता है. अगर Cloud Search को किसी क्वेरी के कॉन्टेक्स्ट में गलत स्पेलिंग मिलती है, तो वह SpellResult में सुझाई गई क्वेरी दिखाता है. उपयोगकर्ता को सुझाई गई स्पेलिंग, सुझाव के तौर पर दिखाई जा सकती है. उदाहरण के लिए, उपयोगकर्ता क्वेरी में “कर्मचारी” शब्द को “कर्मचारी” के बजाय “कर्मचारी” लिख सकता है. ऐसे में, उसे “क्या आपका मतलब कर्मचारी से है?” सुझाव मिल सकता है.

Cloud Search, वर्तनी में हुई गलतियों को समानार्थी शब्दों के तौर पर भी इस्तेमाल करता है. इससे उन दस्तावेज़ों को वापस पाने में मदद मिलती है जो वर्तनी में हुई गलती की वजह से नहीं मिल पाते.

खोज के लिए इस्तेमाल किए जा रहे ऐप्लिकेशन की सेटिंग की मदद से रैंकिंग को बेहतर बनाना

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

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

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

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

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

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

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

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

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

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

सोर्स का महत्व सेट करना

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

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

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

भीड़भाड़ की स्थिति सेट करना

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

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

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

मनमुताबिक बनाए गए अनुभव के ज़रिए रैंकिंग पर असर डालना

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

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

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

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

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

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

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

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

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

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

क्वेरी इंटरप्रिटेशन की मदद से रैंकिंग पर असर डालना

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

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

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

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

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

  • आइटम की भाषा. contentLanguage को इंडेक्स करते समय ItemMetadata में सेट की गई भाषा या Cloud Search से अपने-आप पता लगाई गई कॉन्टेंट की भाषा.

    अगर इंडेक्स करते समय किसी दस्तावेज़ का contentLanguage खाली छोड़ दिया जाता है और ItemContent में जानकारी भर दी जाती है, तो Cloud Search, ItemContent में इस्तेमाल की गई भाषा का पता लगाने की कोशिश करता है. साथ ही, इसे सेव कर लेता है. अपने-आप पता लगाई गई भाषा को contentLanguage फ़ील्ड में नहीं जोड़ा जाता.

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

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

उन आइटम की रैंकिंग बढ़ाई जा सकती है जो किसी खोज क्वेरी के संदर्भ के हिसाब से ज़्यादा काम के हैं. कॉन्टेक्स्ट (contextAttributes) नाम वाले एट्रिब्यूट का एक सेट होता है. इसे इंडेक्सिंग के दौरान और खोज के अनुरोध में तय किया जा सकता है. इससे किसी खास खोज क्वेरी के लिए कॉन्टेक्स्ट मिलता है.

उदाहरण के लिए, मान लें कि कर्मचारी के फ़ायदे से जुड़ा कोई दस्तावेज़, शहर (San Francisco), राज्य (California), देश (USA), और Department (Engineering) जैसे Location और Department के हिसाब से ज़्यादा काम का है. इस मामले में, दस्तावेज़ को इन नाम वाले एट्रिब्यूट के साथ इंडेक्स किया जा सकता है:

{
  ...
  "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" एट्रिब्यूट मौजूद है. इसलिए, इंडेक्स किया गया आइटम, खोज के नतीजों में सिर्फ़ थोड़ा ऊपर दिखता है. इसकी तुलना, अमेरिका के इलिनॉय राज्य के शिकागो शहर में रहने वाले इंजीनियर की ओर से डाली गई पहली खोज क्वेरी "फ़ायदे" से की गई है.

रैंकिंग बढ़ाने के लिए, यहां कॉन्टेक्स्ट के कुछ उदाहरण दिए गए हैं:

  • जगह: आइटम किसी खास जगह पर मौजूद लोगों के लिए ज़्यादा काम के हो सकते हैं. जैसे, कोई बिल्डिंग, शहर, देश या इलाका.
  • जॉब रोल: आइटम, किसी खास जॉब रोल वाले लोगों के लिए ज़्यादा काम के हो सकते हैं. जैसे, टेक्निकल राइटर या इंजीनियर.
  • डिपार्टमेंट: आइटम, कुछ डिपार्टमेंट के लिए ज़्यादा काम के हो सकते हैं. जैसे, बिक्री या मार्केटिंग.
  • जॉब लेवल: आइटम, डायरेक्टर या सीईओ जैसे कुछ जॉब लेवल के लिए ज़्यादा काम के हो सकते हैं.
  • कर्मचारी का टाइप: आइटम, कुछ खास तरह के कर्मचारियों के लिए ज़्यादा काम के हो सकते हैं. जैसे, पार्ट-टाइम और फ़ुल-टाइम कर्मचारी.
  • कार्यकाल: आइटम, किसी कर्मचारी के कार्यकाल के हिसाब से ज़्यादा काम के हो सकते हैं. जैसे, कोई नया कर्मचारी.

आइटम की लोकप्रियता के आधार पर रैंकिंग को बेहतर बनाना

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

क्लिकबूस्ट की मदद से रैंकिंग को बेहतर बनाना

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

खोज के नतीजों की क्वालिटी को बेहतर बनाने के लिए सुझाई गई और वैकल्पिक सेटिंग के बारे में खास जानकारी

यहां दी गई टेबल में, खोज के नतीजों की क्वालिटी से जुड़ी सभी सुझाई गई और वैकल्पिक सेटिंग दी गई हैं. इन सुझावों से, आपको Cloud Search के रैंकिंग मॉडल का ज़्यादा से ज़्यादा फ़ायदा पाने में मदद मिलेगी.

सेटिंगजगहसुझाया गया/ज़रूरी नहीं हैविवरण
स्कीमा सेटिंग
ItemContent फ़ील्डItemContentसुझाए गएस्कीमा बनाते या अपडेट करते समय, किसी आइटम का बिना स्ट्रक्चर वाला कॉन्टेंट भरें. इस फ़ील्ड का इस्तेमाल स्निपेट जनरेट करने के लिए किया जाता है.
RetrievalImportance फ़ील्डRetrievalImportanceसुझाए गएस्कीमा बनाते या अपडेट करते समय, टेक्स्ट प्रॉपर्टी के लिए ऐसे शब्दों का इस्तेमाल करें जो साफ़ तौर पर अहम हों या विषय के हिसाब से सही हों.
FreshnessOptionsFreshnessOptionsवैकल्पिकस्कीमा बनाते या अपडेट करते समय, यह पक्का करें कि गलत डेटा या डेटा मौजूद न होने की वजह से, आइटम को डिमोट न किया जाए.
इंडेक्स करने की सेटिंग
createTime/updateTimeItemMetadataसुझाए गएकिसी आइटम को इंडेक्स करते समय इस फ़ील्ड में वैल्यू भरी जाती है.
contentLanguageItemMetadataसुझाए गएकिसी आइटम को इंडेक्स करते समय इस फ़ील्ड में वैल्यू भरी जाती है. अगर यह मौजूद नहीं है, तो Cloud Search, ItemContent में इस्तेमाल की गई भाषा का पता लगाने की कोशिश करता है.
owners फ़ील्डItemAcl()सुझाए गएकिसी आइटम को इंडेक्स करते समय इस फ़ील्ड में वैल्यू भरी जाती है.
कस्टम समानार्थी शब्द_dictionaryEntry स्कीमासुझाए गएइंडेक्सिंग के दौरान, डेटा सोर्स लेवल पर या अलग डेटा सोर्स के तौर पर तय करें.
quality फ़ील्डSearchQualityMetadataवैकल्पिकसिमेंटिक तौर पर मिलते-जुलते अन्य आइटम की तुलना में, क्वालिटी को बेहतर बनाने के लिए इंडेक्सिंग के दौरान क्वालिटी सेट करें. किसी डेटा सोर्स में मौजूद सभी आइटम के लिए इस फ़ील्ड को सेट करने से, इसका असर खत्म हो जाता है.
आइटम-लेवल का इंटरैक्शन डेटाinteractionवैकल्पिकअगर डेटा सोर्स, उपयोगकर्ता के इंटरैक्शन रिकॉर्ड करता है और उनका ऐक्सेस देता है, तो इंडेक्सिंग के दौरान हर आइटम के लिए इंटरैक्शन की जानकारी भरें.
पूर्णांक/enum प्रॉपर्टीOrderedRankingवैकल्पिकजब आइटम का क्रम ज़रूरी हो, तो इंडेक्सिंग के दौरान पूर्णांक और enum प्रॉपर्टी के लिए, ऑर्डर की गई रैंकिंग तय करें.
ऐप्लिकेशन की सेटिंग खोजना
Personalization=falseScoringConfig या CloudSearch के एडमिन यूज़र इंटरफ़ेस का इस्तेमाल करकेसुझाए गएखोज ऐप्लिकेशन बनाते या अपडेट करते समय. पक्का करें कि आपने मालिक के बारे में सही जानकारी दी हो. इसके बारे में, खोज के नतीजों को पसंद के मुताबिक बनाने की सुविधा के ज़रिए रैंकिंग पर असर डालना लेख में बताया गया है
SourceImportance फ़ील्डSourceCrowdingConfigवैकल्पिककुछ डेटा सोर्स से मिले नतीजों को प्राथमिकता देने के लिए, इस फ़ील्ड को सेट करें.
numResults फ़ील्डSourceCrowdingConfigवैकल्पिकनतीजों में विविधता को कंट्रोल करने के लिए, इस फ़ील्ड को सेट करें.

अगले चरण

यहां कुछ ऐसे तरीके दिए गए हैं जिन्हें आज़माया जा सकता है:

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

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