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" ऑपरेटर पर आधारित टर्म है.
- क्वेरी इंटरप्रिटेशन की रणनीति में, इंटरप्रेट किए गए नतीजों को हमेशा सामान्य (इंटरप्रेट नहीं किए गए, काम के हिसाब से रैंक किए गए) नतीजों के साथ मिलाया जाता है. यह नतीजों को पूरे पेज पर नहीं बदलता.