Cloud Search की क्वेरी इंटरप्रिटेशन सुविधा, उपयोगकर्ता की क्वेरी में मौजूद ऑपरेटर और फ़िल्टर को अपने-आप समझ लेती है. साथ ही, इन एलिमेंट को स्ट्रक्चर्ड और ऑपरेटर पर आधारित क्वेरी में बदल देती है. क्वेरी इंटरप्रिटेशन, स्कीमा में तय किए गए ऑपरेटर और इंडेक्स किए गए दस्तावेज़ों का इस्तेमाल करके यह पता लगाता है कि उपयोगकर्ता की क्वेरी का क्या मतलब है. इस सुविधा की मदद से, उपयोगकर्ता कम से कम कीवर्ड का इस्तेमाल करके खोज कर सकता है. इसके बावजूद, उसे सटीक नतीजे मिलते हैं.
उपयोगकर्ता को दिखाए जाने वाले असल नतीजे, क्वेरी को समझने की आत्मविश्वास पर निर्भर करते हैं. कॉन्फ़िडेंस स्कोर कई बातों पर निर्भर करता है. जैसे, इंडेक्स किए गए दस्तावेज़ों में क्वेरी स्ट्रिंग कहां दिखती हैं. स्ट्रिंग, जैसे कि अभिनेता "टॉम हैंक्स" का नाम, actors नाम के स्कीमा फ़ील्ड में लगातार दिखता है. इससे कॉन्फ़िडेंस लेवल बढ़ता है. पैराग्राफ़ में मौजूद एक ही स्ट्रिंग ("टॉम हैंक्स") को स्कीमा फ़ील्ड के बजाय इस्तेमाल करने से, कॉन्फ़िडेंस लेवल कम हो सकता है. अगर क्वेरी को समझने में एआई को पूरा भरोसा होता है, तो उपयोगकर्ता को सिर्फ़ क्वेरी के आधार पर मिले नतीजे दिखाए जाते हैं. अगर क्वेरी को समझने में कम भरोसा हो, तो क्वेरी इंटरप्रिटेशन से मिले नतीजों को सामान्य कीवर्ड खोज के नतीजों के साथ मिला दिया जाता है.
क्वेरी के मतलब का उदाहरण
मान लें कि आपके पास कोई डेटा सोर्स है, जैसे कि कोई डेटाबेस. इसमें फ़िल्मों के बारे में जानकारी मौजूद है. पहली इमेज में, खोज क्वेरी का एक सैंपल और उसके नतीजे में मिली जानकारी दिखाई गई है.
इस उदाहरण क्वेरी के आधार पर, क्वेरी इंटरप्रिटेशन की सुविधा ये काम करती है:
यह स्कीमा को पार्स करता है और यह तय करता है कि डेटा सोर्स में मौजूद टॉप-लेवल के ऑब्जेक्ट को
objecttype:moviesके तौर पर क्लासिफ़ाई किया गया है. क्वेरी इंटरप्रिटेशन अब यह जानता है कि क्वेरी में "फ़िल्में" एक ऑब्जेक्ट टाइप है.यह फ़ंक्शन, डेटा सोर्स में मौजूद दस्तावेज़ों को स्कीमा के साथ स्कैन करता है. इससे यह पता चलता है कि "action" स्ट्रिंग कहां मौजूद है. अगर स्ट्रिंग मुख्य रूप से "genre" डेटा सोर्स फ़ील्ड में मौजूद है, तो क्वेरी इंटरप्रिटेशन को भरोसा है कि "action", स्कीमा में तय की गई प्रॉपर्टी "genre" की प्रॉपर्टी वैल्यू है. अगर स्ट्रिंग मुख्य रूप से कॉन्टेंट के पैराग्राफ़ के कॉन्टेक्स्ट में आती है, तो क्वेरी इंटरप्रेटेशन के कॉन्फ़िडेंस लेवल में कमी आती है.
क्वेरी का मतलब यह है:
actor:“tom hanks” genre:action objecttype:movies
क्वेरी इंटरप्रिटेशन की सुविधा, Cloud Search के सभी ग्राहकों के लिए अपने-आप चालू हो जाती है. इसके लिए, उन्हें कुछ भी करने की ज़रूरत नहीं होती. हालांकि, क्वेरी को बेहतर तरीके से समझने के लिए, आपको इस दस्तावेज़ में दिए गए निर्देशों के मुताबिक अपने स्कीमा को स्ट्रक्चर करना चाहिए.
क्वेरी को समझने में मदद करने के लिए, अपने स्कीमा को स्ट्रक्चर करना
आपको अपने स्कीमा को इस तरह से स्ट्रक्चर करना चाहिए कि आपको क्वेरी इंटरप्रिटेशन की सुविधा का फ़ायदा मिल सके.
डिसप्ले नेम के मतलब दिखाने की सुविधा चालू करना
Cloud Search, क्वेरी को समझने के लिए स्कीमा में objectDefinitions और propertyDefinitions का इस्तेमाल करता है. इससे, उपयोगकर्ता की क्वेरी को समझा जा सकता है और नतीजों को बेहतर बनाया जा सकता है. इन स्कीमा एलिमेंट का ज़्यादा से ज़्यादा फ़ायदा पाने के लिए, आपको प्रॉपर्टी के नामों के लिए displayLabel, ऑब्जेक्ट के नामों के लिए objectDisplayLabel, और ऑपरेटर के लिए operatorName का इस्तेमाल करके, समझने में आसान डिसप्ले नेम बनाने चाहिए.
यहां दिए गए स्कीमा में, किसी फ़िल्म ऑब्जेक्ट के लिए समझने में आसान डिसप्ले नेम दिखाए गए हैं:
{
"objectDefinitions": [
{
"name": "movie",
"options": {
"displayOptions": {
"objectDisplayLabel": "Films"
}
...
},
"propertyDefinitions": [
{
"name": "genre",
"isReturnable": true,
"isRepeatable": true,
"isFacetable": true,
"textPropertyOptions": {
"retrievalImportance": { "importance": "HIGHEST" },
"operatorOptions": {
"operatorName": "genre"
}
},
"displayOptions": {
"displayLabel": "Category"
}
},
...
]
}
]
}
पिछले उदाहरण में:
फ़िल्म ऑब्जेक्ट की परिभाषा में “Film”
objectDisplayLabelमौजूद है.शैली की propertyDefinition में “शैली”
operatorNameऔर “कैटगरी”displayLabelशामिल हैं.
इन डिसप्ले नामों की मदद से, Cloud Search क्वेरी को इस तरह समझ सकता है:
- “ऐक्शन फ़िल्में”, “ऐक्शन टाइप की फ़िल्में”, या “ऐक्शन फ़िल्मों की शैली” को
genre:action object:moviesके तौर पर समझा जाता है. - “ऐक्शन या थ्रिलर शैली वाली फ़िल्में” को इस तरह समझा जाता है
objecttype:movies genre:(action OR thriller). - “ऐक्शन फ़िल्म” या “ऐक्शन फ़िल्में” को
genre:action objecttype:moviesके तौर पर समझा जाता है. - “कॉमेडी कैटगरी की फ़िल्में” को
genre:comedy objecttype:moviesके तौर पर समझा जाता है.
तारीख, संख्या, और क्रम से लगाने की सुविधा चालू करना
आपको तारीख और संख्या वाली सभी प्रॉपर्टी के लिए, IntegerOperatorOptions में बताई गई lessThanOperatorName और greaterThanOperatorName प्रॉपर्टी की वैल्यू तय करनी चाहिए. इन सेटिंग की मदद से, तारीख और संख्यात्मक डेटा की अपने-आप व्याख्या की जा सकती है. इसके अलावा, क्रम से लगाने की सुविधा चालू करने के लिए, तारीख और संख्या वाली प्रॉपर्टी के लिए isSortable विकल्प सेट करें. नीचे दिए गए स्कीमा में, इन विकल्पों को चालू करने का तरीका बताया गया है.
{
"objectDefinitions": [
{
"options": {
"displayOptions": {
"objectDisplayLabel": "Films"
}
},
"propertyDefinitions": [
{
"name": "runtime",
"isReturnable": true,
"isSortable": true,
"integerPropertyOptions": {
"orderedRanking": "DESCENDING",
"minimumValue": {
"value": 10
},
"maximumValue": {
"value": 500
},
"operatorOptions": {
"operatorName": "runtime",
"lessThanOperatorName": "runtimelessthan",
"greaterThanOperatorName": "runtimegreaterthan"
}
},
"displayOptions": {
"displayLabel": "Length"
}
},
{
"name": "releasedate",
"isReturnable": true,
"isSortable": true,
"datePropertyOptions": {
"operatorOptions": {
"operatorName": "releasedate",
"lessThanOperatorName": "releasedbefore",
"greaterThanOperatorName": "releasedafter"
}
}
}
]
}
]
}
पिछले उदाहरण में:
- संख्या वाली प्रॉपर्टी
runtime, फ़िल्म की अवधि के बारे में बताती है.runtimelessthanऔरruntimegreaterthanको इस प्रॉपर्टी के लिए सेट किया गया है. - तारीख प्रॉपर्टी
releaseDateसे पता चलता है कि फ़िल्म थिएटर में कब रिलीज़ हुई थी. इस प्रॉपर्टी के लिएreleasedbeforeऔरreleasedafterसेट है.
इन सेटिंग की मदद से, Cloud Search क्वेरी को इस तरह से समझ पाता है:
- मान लें कि साल 2019 है. ऐसे में, “इस साल रिलीज़ हुई फ़िल्में” को
objecttype: movies releasedafter:2019-1-1 releasedbefore:2019-12-31के तौर पर समझा जाएगा. - मान लें कि मार्च का तीसरा हफ़्ता है. ऐसे में, “पिछले हफ़्ते रिलीज़ हुई फ़िल्में” को
objecttype: movies releasedafter:2019-3-10 releasedbefore:2019-3-16के तौर पर समझा जाएगा - “90 मिनट से कम अवधि वाली फ़िल्में” को
objjecttype: movies runtimelessthan:90के तौर पर समझा जाता है. - मान लें कि साल 2019 है. ऐसे में, “इस साल रिलीज़ हुई और 120 मिनट से ज़्यादा अवधि वाली फ़िल्में” को
releasedafter:2019-1-1 releasedbefore:2019-12-31 objecttype:movies runtimegreaterthan:120के तौर पर समझा जाएगा. - “रिलीज़ होने की तारीख के हिसाब से फ़िल्में क्रम से लगाओ” क्वेरी से, “objecttype: movies” पर फ़िल्टर किया जाएगा. साथ ही, दिखाए गए नतीजे, रिलीज़ होने की तारीख के हिसाब से क्रम से लगाए जाएंगे. डिफ़ॉल्ट रूप से, क्रम बढ़ते हुए क्रम में होगा.
ऑपरेटर के लिए, आरक्षित शब्दों के मतलब समझने की सुविधा चालू करना
क्वेरी को बेहतर तरीके से समझने के लिए, type, before, after, objecttype रिज़र्व किए गए बिल्ट-इन ऑपरेटरों का भी इस्तेमाल किया जा सकता है. किसी दस्तावेज़ को इंडेक्स करते समय, ये काम करें:
beforeऔरafterऑपरेटर इस्तेमाल करने के लिए,ItemMetadataमें मौजूदupdateTimeफ़ील्ड में वैल्यू डालें. इन सेटिंग की मदद से, Cloud Search क्वेरी को इस तरह से समझ पाता है:- “पिछले हफ़्ते की फ़िल्में” क्वेरी के जवाब में, उन सभी फ़िल्मों की सूची दिखेगी जिन्हें पिछले हफ़्ते इंडेक्स में अपडेट किया गया था.
- “जनवरी 2019 से पहले की फ़िल्में” क्वेरी से, उन सभी फ़िल्मों की सूची दिखेगी जिन्हें जनवरी 2019 से पहले इंडेक्स किया गया था.
टाइप का अपने-आप पता लगाने की सुविधा का इस्तेमाल करने के लिए,
ItemMetadataमेंmimeTypeफ़ील्ड की वैल्यू भरें. “ऐक्शन वीडियो” क्वेरी से, ऐक्शन मूवी के उन सभी दस्तावेज़ों की सूची दिखेगी जिनका माइम टाइपapplication/mp4,application/mpeg4,application/x-shockwave-flash,video/, औरapplication/vnd.google-apps.videoहै.
क्वेरी को समझने से जुड़ी सीमाएं
क्वेरी का मतलब समझने की सुविधा से जुड़ी ये सीमाएं हैं.
- क्वेरी इंटरप्रिटेशन की सुविधा, सिर्फ़ इन डेटा सोर्स की एएसएल के लिए काम करती है:
- सभी दस्तावेज़, डोमेन के लिए सार्वजनिक होते हैं. इसका मतलब है कि डोमेन का हर व्यक्ति उन्हें ऐक्सेस कर सकता है.
- सभी दस्तावेज़, डेटा सोर्स के लिए सार्वजनिक होते हैं. इसका मतलब है कि जिन लोगों के पास डेटा सोर्स की एएलसी का ऐक्सेस होता है वे सभी दस्तावेज़ों को ऐक्सेस कर सकते हैं.
- डेटा सोर्स में मौजूद ज़्यादातर दस्तावेज़ों के लिए, एक ही ऐक्सेस कंट्रोल लिस्ट (एसीएल) का इस्तेमाल किया जाता है. इसका मतलब है कि सभी दस्तावेज़, एक ही कंटेनर आइटम से एसीएल इनहेरिट करते हैं. साथ ही, कोई अतिरिक्त रीडर तय नहीं किया गया है.
- अगर कई स्कीमा ऑपरेटर की वैल्यू एक जैसी है, तो क्वेरी के लिए ऑपरेटर इंटेंट के तौर पर उस वैल्यू की व्याख्या, क्वेरी इंटरप्रिटेशन सिस्टम से मिले कॉन्फ़िडेंस फ़ैक्टर पर निर्भर करती है. उदाहरण के लिए, मान लें कि आपके पास
priorityऔरseverityप्रॉपर्टी हैं. इनमें ऑपरेटर के नाम एक जैसे हैं और स्कीमा में इन्हें तय किया गया है. मान लें कि दोनों ऑपरेटर की वैल्यू 0, 1, 2 या 3 हो सकती है. इस उदाहरण में, क्वेरी में मौजूद "0" का मतलब, ऑपरेटर वैल्यू के लिएpriorityयाseverityहो सकता है. ये वैल्यू अस्पष्ट हैं और कॉन्फ़िडेंस लेवल कम है. - डिफ़ॉल्ट रूप से, Cloud Search की क्वेरी इंटरप्रिटेशन सुविधा, क्वेरी को समझने के दौरान फ़ील्ड की वैल्यू के केस को छोटा कर देती है. हालांकि,
exactMatchWithOperatorविकल्पों के साथ तय किए गए टेक्स्ट ऑपरेटर के लिए ऐसा नहीं होता. - क्वेरी में
sourceऑपरेटर का इस्तेमाल नहीं किया जा सकता. - ऑपरेटर के आधार पर तय किए गए शब्दों और फ़्री टेक्स्ट वाले शब्दों को मिलाकर की गई क्वेरी को नहीं समझा जाता. उदाहरण के लिए, "p0 priority cases severity:s0" क्वेरी का इस्तेमाल नहीं किया जा सकता, क्योंकि "p0 priority cases" एक फ़्री टेक्स्ट-टर्म है, जबकि "severity:s0" ऑपरेटर पर आधारित टर्म है.
- क्वेरी इंटरप्रिटेशन की रणनीति में, इंटरप्रेट किए गए नतीजों को हमेशा सामान्य (इंटरप्रेट नहीं किए गए, काम के हिसाब से रैंक किए गए) नतीजों के साथ मिलाया जाता है. यह नतीजों को पूरे पेज पर नहीं बदलता.