क्वेरी की भाषा खोजें

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

क्वेरी भाषा की मदद से, इन शर्तों के हिसाब से खोजा जा सकता है:

  • कीवर्ड
  • फ़ील्ड:वैल्यू पेयर

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

कीवर्ड से की गई खोजें

कीवर्ड, टेक्स्ट स्ट्रिंग होती हैं. इनका इस्तेमाल करके, समस्याओं के कुछ फ़ील्ड में खोजा जा सकता है. ये फ़ील्ड हैं:

  • शीर्षक
  • टिप्पणियां
  • अटैचमेंट के नाम
  • ऐसे फ़ील्ड जिनमें उपयोगकर्ताओं की जानकारी होती है. उदाहरण के लिए, असाइन किया गया व्यक्ति या कॉपी
  • ऐसे फ़ील्ड जिनमें कोई इंटरनल आईडी नंबर होता है. उदाहरण के लिए, वे फ़ील्ड जिनमें किसी समस्या वाले कॉम्पोनेंट या हॉटलिस्ट की जानकारी होती है
  • ऐसे फ़ील्ड जिनमें वर्शन नंबर शामिल हैं
  • कस्टम फ़ील्ड

कीवर्ड खोज की शर्तों का उदाहरण, स्ट्रिंग configuration properties है. खोज में यह शर्त डालने पर, समस्या ट्रैकर सभी कॉम्पोनेंट में समस्याओं को दुनिया भर में खोजता है. साथ ही, उन समस्याओं को दिखाता है जिनके फ़ील्ड में दोनों कीवर्ड शामिल होते हैं. यह खोज, ऐक्सेस कंट्रोल की अनुमतियों के हिसाब से होती है. कीवर्ड अलग-अलग फ़ील्ड या एक ही फ़ील्ड में हो सकते हैं.

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

खोज करने से पहले, ज़्यादातर खास वर्णों को कीवर्ड से हटा दिया जाता है. उदाहरण के लिए, my-query_text जैसी क्वेरी को my और query_text टोकन में बांटा जाएगा. साथ ही, दोनों टोकन से मैच होने वाले बग दिखाए जाएंगे.

समस्या ट्रैकर, खोज की शर्तों को अलग करने वाले स्पेस वर्ण को, एक AND ऑपरेटर के तौर पर इस्तेमाल करता है. कोटेशन मार्क (") का इस्तेमाल करके, यह बताया जा सकता है कि कई शब्दों वाली स्ट्रिंग को एक कीवर्ड माना जाए. समस्या ट्रैकर में की जाने वाली सभी खोजें, केस-इन्सेंसिव होती हैं. भले ही, आपने कोटेशन मार्क का इस्तेमाल किया हो या नहीं.

फ़ील्ड:वैल्यू पेयर खोजें

खोज की शर्तों को फ़ील्ड:वैल्यू पेयर के तौर पर भी बताया जा सकता है. इसका बेसिक सिंटैक्स [field]:[value] है. टेक्स्ट फ़ील्ड के लिए, यह सिंटैक्स उन समस्याओं से मैच करता है जिनमें तय किए गए फ़ील्ड में वैल्यू होती है. अन्य तरह के फ़ील्ड के लिए, यह उन समस्याओं से मैच करता है जिनमें फ़ील्ड की वैल्यू एक जैसी होती है.

उदाहरण के लिए, title:latency खोजने पर, टाइटल फ़ील्ड में latency शब्द वाली समस्याओं से मैच होता है. priority:p0 खोजने पर, p0 प्राथमिकता वाली समस्याएं मिलती हैं.

किसी भी ऐसे फ़ील्ड को कीवर्ड सर्च के तौर पर समझा जाएगा जिसकी पहचान न हो सकी हो.

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

'कोई भी' और 'कोई नहीं' का इस्तेमाल करके, खास वैल्यू की खोज करना

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

तार्किक ऑपरेटर

लॉजिकल ऑपरेटर की मदद से, एक से ज़्यादा शर्तें तय की जा सकती हैं और उनके बीच के संबंध के बारे में बताया जा सकता है. कोटेशन मार्क के बाहर मौजूद स्पेस वर्ण, AND ऑपरेटर के तौर पर काम करते हैं. समस्या ट्रैकर में, साफ़ तौर पर दिखने वाले इन लॉजिकल ऑपरेटर का इस्तेमाल किया जा सकता है:

ऑपरेटर वैकल्पिक चिह्न ब्यौरा उदाहरण
और {whitespace} समस्या में दोनों शर्तें होने पर मैच करता है star:true AND componentid:46046
या | अगर समस्या में इनमें से कोई एक शर्त मौजूद है, तो मैच होता है type:(Bug|feature_request)
NOT - समस्या में शर्तें न होने पर मैच होता है -assignee:jim
"..." अगर समस्या में कोट किया गया कोई फ़्रेज़ है, तो मैच करता है (कोट में मौजूद शब्द उसी क्रम में दिखते हैं) comment:"We have a problem"
( ) वैल्यू या खोज के लिए इस्तेमाल होने वाली शर्तों को एक साथ ग्रुप करता है status:open AND (priority:(p0|p1) OR severity:(s0|s1))

निम्न पर ध्यान दें:

  • AND, OR, और NOT के लिए, आपको सभी कैपिटल लेटर का इस्तेमाल करना होगा.

  • NOT ऑपरेटर का मतलब, फ़ील्ड के नाम या फ़ील्ड की वैल्यू से पहले होने पर भी एक जैसा होता है. इसका मतलब है कि -assignee:jim और assignee:-jim एक जैसे हैं.

  • खोज क्वेरी में शब्दों को साफ़ तौर पर ग्रुप करने के लिए, ब्रैकेट का इस्तेमाल करें. डिफ़ॉल्ट रूप से, आइज़्यू ट्रैकर NOT को उसके बाद वाले शब्द से ही जोड़ता है. साथ ही, OR को ब्रैकेट में मौजूद दो शब्दों के साथ ग्रुप करता है. उदाहरण के लिए, खोज क्वेरी title:(a OR b NOT c AND d), title:((a OR b) AND (NOT c) AND d) के बराबर है.

डैश

खोज क्वेरी के संदर्भ के आधार पर, डैश वर्ण (-) का मतलब अलग-अलग होता है:

  • समस्या ट्रैकर, खोज में किसी शब्द से पहले मौजूद डैश को NOT ऑपरेटर के तौर पर इस्तेमाल करता है. उदाहरण के लिए, खोज के लिए इस्तेमाल की गई -assignee:none या assignee:-none से जुड़ी शर्तें, उन सभी समस्याओं को दिखाती हैं जिनके लिए किसी व्यक्ति को असाइन किया गया है.

  • समस्या ट्रैकर, डैश वर्ण से जुड़ी स्ट्रिंग को कोटेशन मार्क के तौर पर इस्तेमाल करता है. उदाहरण के लिए, खोज की शर्त state-of-the-art, "state of the art" के बराबर है.

  • समस्या ट्रैकर, समस्या फ़ील्ड में हाइफ़न वाले शब्दों को अलग-अलग शब्द मानता है और उन्हें स्पेस से अलग करता है. इसका मतलब है कि अगर किसी समस्या के टाइटल में state-of-the-art शब्द है और आपने खोज क्वेरी title:(of art state the) या title:("state of the art") डाली है, तो समस्या खोज के नतीजों के हिस्से के तौर पर दिखेगी.

रिलेशनल ऑपरेटर

फ़ील्ड:वैल्यू खोज की शर्तों के लिए बुनियादी सिंटैक्स [field]:[value] है. इसमें कोलन वर्ण (:) से पता चलता है कि खोज के नतीजों में कोई समस्या दिखाने के लिए, दिया गया फ़ील्ड उस वैल्यू के बराबर होना चाहिए या उसमें वह वैल्यू शामिल होनी चाहिए.

जिन फ़ील्ड में समय की वैल्यू (created, modified, resolved, verified और कुछ कस्टम फ़ील्ड) या गिनती की वैल्यू (duplicatecount, votecount, commentcount, और cccount) होती है वे इन अतिरिक्त रिलेशनल ऑपरेटर के साथ काम करते हैं:

चिह्न ब्यौरा
< अगर इसकी वैल्यू, आपकी खोज वैल्यू से कम या उससे पहले की है, तो यह किसी समस्या से मैच करती है.
<= अगर इसकी वैल्यू, खोज के लिए डाली गई वैल्यू से कम, उससे पहले या उसके बराबर है, तो यह किसी समस्या से मैच करती है.
> अगर इसकी वैल्यू, आपकी खोज वैल्यू से ज़्यादा या उसके बाद की है, तो यह किसी समस्या से मैच करती है.
>= अगर इसकी वैल्यू, खोज के लिए डाली गई वैल्यू से ज़्यादा, उसके बाद या उसके बराबर है, तो यह किसी समस्या से मेल खाती है.

समय के हिसाब से खोजें

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

समय का सटीक फ़ॉर्मैट

समय बताने का फ़ॉर्मैट यह है:

[yyyy]-[MM]-[dd]T[HH]:[mm]:[ss].

इस फ़ॉर्मैट में, [yyyy] साल के चार अंक, [MM] महीने के दो अंक, [dd] दिन के दो अंक, [HH] 24-घंटे की घड़ी के दो अंक, [mm] मिनट, और [ss] सेकंड होते हैं. खोज के नतीजों में दिखने वाले सभी समय को यूटीसी के तौर पर दिखाया जाता है. भले ही, आपने तारीख और समय की सेटिंग में कोई दूसरा टाइम ज़ोन चुना हो.

किसी खास समय पर, उससे पहले या बाद में हुई समस्याओं को खोजते समय, ज़्यादा जानकारी दी जा सकती है. उदाहरण के लिए, जून 2014 में किसी भी समय बनी समस्याओं को ढूंढने के लिए, created:2014-06 कोटेशन में डालें. ज़्यादा सटीक जानकारी के लिए, created:2014-06-03T04 खोजें. इससे आपको 3 जून, 2014 को चौथे घंटे (यूटीसी के मुताबिक, सुबह 4 से 5 बजे के बीच) बनी समस्याएं दिखेंगी.

समय सीमाएं

फ़ील्ड:वैल्यू के लिए खोज की शर्तों में समयसीमा तय करने के लिए, दो पीरियड वर्ण (..) का इस्तेमाल किया जा सकता है. इसका सिंटैक्स [field]:[start time]..[end time] है. शुरू और खत्म होने के समय को ज़रूरत के हिसाब से तय किया जा सकता है. उदाहरण के लिए, verified:2013..2015 से, 2013, 2014 या 2015 में पुष्टि की गई सभी समस्याएं दिखती हैं.

समय का रिलेटिव फ़ॉर्मैट

आज से पहले के दिनों के हिसाब से भी समय तय किया जा सकता है. ऐसा करने के लिए, [days]d फ़ॉर्मैट का इस्तेमाल करें. इसमें [days], उन दिनों की संख्या है जिन्हें आपको खोज के नतीजों में शामिल करना है. उदाहरण के लिए, modified:5d का इस्तेमाल करके, उन समस्याओं को ढूंढा जा सकता है जिनमें पिछले पांच दिनों में बदलाव किया गया है.

रिलेटिव टाइम फ़ॉर्मैट का इस्तेमाल करते समय, ऑपरेटर को कोलन वर्ण (:) होना चाहिए, जैसे कि created:5d. अगर आपको ऐसी समस्याएं ढूंढनी हैं जो तय सीमा में नहीं आती हैं, तो NOT या - ऑपरेटर का इस्तेमाल करें.

उदाहरण के लिए, -verified:10d उन समस्याओं को दिखाता है जिनकी पुष्टि पिछले 10 दिनों में नहीं की गई है. अगर आपको ऐसी समस्याएं देखनी हैं जिनकी पुष्टि हो चुकी है, लेकिन पिछले 10 दिनों में नहीं, तो (-verified:10d) AND status:verified का इस्तेमाल करें.

दिन के हिसाब से खोज के लिए "आज"

समय के हिसाब से खोजने के लिए, today टोकन का इस्तेमाल किया जा सकता है. इसे मौजूदा तारीख के विकल्प के तौर पर इस्तेमाल किया जा सकता है. इसमें today+10 और today-2 जैसे दिन के हिसाब से कैलकुलेशन का इस्तेमाल किया जा सकता है. today टोकन का इस्तेमाल, today-2..today+3 जैसी समयसीमाओं के साथ भी किया जा सकता है. सेव की गई खोजों में today टोकन का इस्तेमाल करने से, क्वेरी को फिर से इस्तेमाल किया जा सकता है.

उदाहरण:

  • created:today
  • modified<=today-10
  • nearestslo:today+10
  • resolved:2024-02-29..today+2
  • customfield1002:today..today+5

ध्यान दें: समय के सटीक फ़ॉर्मैट में बताया गया है कि समस्या ट्रैकर में समय की खोज, यूटीसी में की जाती है. यही बात उन खोजों पर भी लागू होती है जिनमें today का इस्तेमाल किया जाता है.