Cloud Search की क्वेरी की व्याख्या की सुविधा ऑपरेटर और फ़िल्टर का इस्तेमाल करता है. साथ ही, उन एलिमेंट को ऑपरेटर पर आधारित क्वेरी. क्वेरी इंटरप्रिटेशन में ऑपरेटर तय किए गए का इस्तेमाल किया जाता है स्कीमा में, इंडेक्स किए गए दस्तावेज़ों के साथ, यह पता लगाने के लिए किया जाता है कि उपयोगकर्ता की खोज से क्वेरी का मतलब है. इस सुविधा की मदद से, लोग कम से कम फिर भी सटीक परिणाम प्राप्त कर सकते हैं.
उपयोगकर्ता को दिखाए जाने वाले असली नतीजे, लोगों के आत्मविश्वास पर निर्भर करते हैं
के हिसाब से पूछा जा सकता है. भरोसा कई बातों पर निर्भर करता है,
इसमें यह जानकारी भी शामिल होती है कि इंडेक्स किए गए दस्तावेज़ों में क्वेरी स्ट्रिंग कहां दिखती हैं. ऐसी स्ट्रिंग
अभिनेता "टॉम हैंक्स" आपके कॉन्टेंट में लगातार दिखने वाले
actors
नाम के स्कीमा फ़ील्ड का इस्तेमाल करने पर, ज़्यादा भरोसा होता है. एक जैसी स्ट्रिंग
("टॉम हैंक्स") की इमेज, स्कीमा फ़ील्ड के बजाय पैराग्राफ़ में दिखती हैं
इससे कॉन्फ़िडेंस नहीं मिलता. ज़्यादा भरोसा होने के मामले में, सिर्फ़ नतीजे
के विकल्प उपयोगकर्ता को दिखाए जाते हैं. कमज़ोर होने के मामले में
के साथ
कीवर्ड खोज परिणाम.
क्वेरी के बारे में जानकारी का उदाहरण
मान लें कि आपके पास डेटाबेस जैसा एक डेटा सोर्स है, जिसमें देखें. पहली इमेज में सैंपल सर्च क्वेरी और उसका नतीजा दिखाया गया है से पता चलता है.
![क्वेरी की परिभाषा के बारे में खास जानकारी](https://developers-dot-devsite-v2-prod.appspot.com/static/cloud-search/images/query-interpretation.png?authuser=3&hl=hi)
उदाहरण के तौर पर दी गई इस क्वेरी के लिए, क्वेरी का मतलब ये काम करता है:
यह स्कीमा को पार्स करता है और तय करता है कि डेटा सोर्स में टॉप-लेवल के ऑब्जेक्ट मौजूद हैं या नहीं
objecttype:movies
की कैटगरी में रखे गए हैं. क्वेरी इंटरप्रिटेशन अब यह जानती है कि "फ़िल्में" क्वेरी में एक ऑब्जेक्ट टाइप है.स्कीमा के साथ मिलकर, डेटा सोर्स में मौजूद दस्तावेज़ों को स्कैन करता है, ताकि तय करें कि स्ट्रिंग "कार्रवाई" कहां है होता है. अगर स्ट्रिंग मुख्य रूप से किसी खास "शैली" में डेटा सोर्स फ़ील्ड, फिर क्वेरी इंटरप्रेशन को भरोसा है कि "कार्रवाई" "शैली" प्रॉपर्टी के लिए एक प्रॉपर्टी वैल्यू है जैसा कि स्कीमा में बताया गया है. अगर स्ट्रिंग मुख्य रूप से पैराग्राफ़ की खोज की जाती है, तो क्वेरी व्याख्या का कॉन्फ़िडेंस लेवल कम हो जाता है.
इससे मिलने वाली क्वेरी का मतलब यह है:
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"
}
},
...
]
}
]
}
पिछले उदाहरण में:
मूवी ऑब्जेक्ट की परिभाषा में “फ़िल्म”
objectDisplayLabel
मौजूद है.शैली प्रॉपर्टी परिभाषा में एक “शैली”
operatorName
और एक “कैटगरी” हैdisplayLabel
.
ये डिसप्ले नेम, Cloud Search को यह क्वेरी करने के लिए चालू करते हैं व्याख्याएं:
- “ऐक्शन फ़िल्में,” “शैली की ऐक्शन टाइप फ़िल्में” या “फ़िल्म शैली वाली ऐक्शन”
genre:action object:movies
समझा जाता है. - “ऐक्शन या थ्रिलर वाली फ़िल्में” का मतलब इस तरह से है
objecttype:movies genre:(action OR thriller)
. - “ऐक्शन फ़िल्म” या “ऐक्शन फ़िल्में” को ऐसे समझा जाता है
genre:action objecttype:movies
. - “कॉमेडी कैटगरी की फ़िल्में” को
genre:comedy objecttype:movies
माना जाता है.
तारीख, संख्या, और आंकड़ों को क्रम से लगाने की सुविधा चालू करें
आपको lessThanOperatorName
और greaterThanOperatorName
की जानकारी देनी चाहिए,
इसमें बताया गया है
IntegerOperatorOptions
, सभी तारीखों के लिए और
संख्यात्मक प्रॉपर्टी. ये सेटिंग अपने-आप तारीख सेट करने की सुविधा चालू करती हैं और
संख्यात्मक व्याख्याएं. इसके अलावा, क्रम से लगाने की सुविधा को चालू करने के लिए,
तारीख और संख्या वाली प्रॉपर्टी के लिए, 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 है, “इस साल रिलीज़ हुई और साल 2019 से ज़्यादा
120” को
releasedafter:2019-1-1 releasedbefore:2019-12-31 objecttype:movies runtimegreaterthan:120
माना जाता है. - “रिलीज़ की तारीख के मुताबिक फ़िल्मों को क्रम से लगाएं” विकल्प को “ऑब्जेक्टटाइप: फ़िल्में” और दिखाए गए नतीजे, रिलीज़ होने की तारीख को डिफ़ॉल्ट क्रम में लगाए जाएंगे बढ़ते क्रम में.
रिज़र्व ऑपरेटर व्याख्या को चालू करें
type
, before
, after
, objecttype
के लिए पहले से रिज़र्व की गई सुविधाओं का भी इस्तेमाल किया जा सकता है
ऑपरेटर का इस्तेमाल करें. किसी दस्तावेज़ को इंडेक्स करते समय, ये काम करें
फ़ॉलो किया जा रहा है:
इसमें
updateTime
फ़ील्ड को भरेंItemMetadata
before
औरafter
ऑपरेटर का इस्तेमाल करने के लिए. ये सेटिंग की मदद से Cloud Search चालू हो जाता है, ताकि ये क्वेरी मतलब निकाले जा सकें:- “पिछले हफ़्ते की फ़िल्में” में वे सभी फ़िल्में शामिल होंगी जिन्हें पिछले हफ़्ते इंडेक्स करना.
- “जनवरी 2019 से पहले की मूवी” में वे सभी फ़िल्में दिखेंगी जिन्हें पहले इंडेक्स किया गया था जनवरी 2019.
इसकी अपने-आप पहचान करने की सुविधा का इस्तेमाल करने के लिए,
ItemMetadata
मेंmimeType
फ़ील्ड को भरें टाइप करें. “ऐक्शन वीडियो” वाली क्वेरी में, माइम वाली ऐक्शन फ़िल्म के सभी दस्तावेज़ शामिल होते हैंapplication/mp4
,application/mpeg4
,application/x-shockwave-flash
का टाइप है,video/
औरapplication/vnd.google-apps.video
.
क्वेरी को समझने की सीमाएं
क्वेरी इंटरप्रिटेशन सुविधा की सीमाएं नीचे दी गई हैं.
- क्वेरी इंटरप्रिटेशन सिर्फ़ इन डेटा सोर्स एसीएल के लिए काम करती है:
- सभी दस्तावेज़ डोमेन सार्वजनिक हैं (डोमेन में सभी लोग ऐक्सेस कर सकते हैं).
- सभी दस्तावेज़ डेटा सोर्स सार्वजनिक होते हैं (वे सभी लोग जिनके पास डेटा सोर्स का ऐक्सेस है ACL).
- डेटा सोर्स में मौजूद ज़्यादातर दस्तावेज़ों का ACL (सभी दस्तावेज़) एक ही है ACL को उसी कंटेनर आइटम से इनहेरिट करता है) जिसमें कोई अतिरिक्त रीडर तय नहीं होता है.
- अगर कई स्कीमा ऑपरेटर का मान एक जैसा है, तो
किसी क्वेरी के लिए ऑपरेटर इंटेंट की वह वैल्यू, पूरे भरोसे पर निर्भर करती है
क्वेरी इंटरप्रेशन सिस्टम से मिला फ़ैक्टर. उदाहरण के लिए, मान लें कि
इनके पास एक जैसे ऑपरेटर नामों वाली
priority
औरseverity
प्रॉपर्टी हैं की परिभाषा, स्कीमा में दी गई है. मान लें कि दोनों ऑपरेटर की वैल्यू 0, 1, 2 या 3 हो सकती हैं. इस उदाहरण में, "0" किसी क्वेरी मेंpriority
याseverity
. ये वैल्यू साफ़ नहीं हैं और कॉन्फ़िडेंस लेवल है कम. - डिफ़ॉल्ट रूप से, Cloud Search में क्वेरी का जवाब फ़ील्ड के केस को छोटा कर देता है
क्वेरी की व्याख्या करते समय मान. इसमें वे टेक्स्ट ऑपरेटर शामिल नहीं हैं जिनके साथ
exactMatchWithOperator
विकल्प. - क्वेरी में
source
ऑपरेटर काम नहीं करता. - ऐसी क्वेरी जिनमें ऑपरेटर-आधारित शर्तों और मुफ़्त टेक्स्ट-टर्म को शामिल किया जाता है, वे समझा जा सकता है. उदाहरण के लिए, "p0 प्राथमिकता केस की गंभीरता:s0" क्वेरी नहीं होता "p0 प्रायॉरिटी केस" की वजह से काम नहीं करेगा एक मुफ़्त टेक्स्ट शब्द है, जबकि "severity:s0" ऑपरेटर-आधारित शब्द है.
- क्वेरी इंटरप्रिटेशन की रणनीति, इंटरप्रेट किए गए नतीजों को हमेशा सामान्य (सामान्य, बिना किसी क्रम के, काम के क्रम में लगाए गए) नतीजे दिखते हैं. यह पूरा परफ़ॉर्म नहीं करता परिणामों का पेज बदलना.