2012-06-15 13 views
9

मैं एक वैश्विक चर चाहता हूं जिसे मैं अपने विभिन्न .xqy पृष्ठों में उपयोग कर सकता हूं। क्या मैं मार्कलॉग सर्वर में xquery में ऐसे चर को घोषित कर सकता हूं?क्या मैं मार्कब्लिक सर्वर में xquery में वैश्विक चर घोषित कर सकता हूं?

उत्तर

15

आप किसी भी मॉड्यूल में चर घोषित कर सकते हैं। उदाहरण के लिए यह config.xqy है।

declare variable $PRECISION as xs:integer := 4; 

इस चर का उपयोग करने के लिए आपको अपने मॉड्यूल में इस मॉड्यूल को आयात करने की आवश्यकता है।

import module namespace conf = "http://your-namespace" at "config.xqy"; 

और यह चर का संदर्भ लें:

:

$config:PRECISION 
2

आप सर्वर भर में सुलभ मूल्यों की जरूरत है, वहाँ भंडारण लगातार कुंजी/मान जोड़े के लिए MarkLogic XQuery कॉमन्स में एक पुस्तकालय है https://github.com/marklogic/commons/blob/master/properties/properties.xqy

और आप इसे पहले से ही मान चुके हैं, लेकिन आप बस डेटाबेस पर किसी दस्तावेज़ में वैश्विक डेटा को संग्रहीत कर सकते हैं और w ith डॉक्टर() - या eval() यदि आपको किसी भिन्न डेटाबेस से प्राप्त करने की आवश्यकता है।

5

यदि आपका एप्लिकेशन एक ई-नोड पर चल रहा है, तो आप server fields का उपयोग कर सकते हैं, जो इस उपयोग के मामले के लिए भी डिज़ाइन किए गए हैं।

1

आपके पास कुछ विकल्प हैं। यदि आपको ग्लोबल निरंतर चर की आवश्यकता है, तो config.xqy @ एंड्रयू ऑर्लोव के उत्तर में विधि का उल्लेख बहुत अच्छा है क्योंकि आप properties.xml फ़ाइल पर समवर्ती पहुंच से किसी लॉकिंग से बचते हैं।

यदि आपको एक वेरिएबल की आवश्यकता है जिसे नोड्स के क्लस्टर में उत्परिवर्तित किया जा सकता है, तो property.xqy उदाहरण @wst से जुड़ा हुआ उदाहरण पुनर्प्राप्त करने योग्य कुंजी और मान को एम्बेड करने के लिए विश्व स्तर पर असाइन किए गए नेमस्पेस का उपयोग करना प्रतीत होता है। बहुत चालाक हालांकि, मुझे यकीन नहीं है कि यह परिवर्तन के भारी स्तर के लिए कितना है।

ई-नोड @Eric Bloch से विशिष्ट चर अच्छा है, लेकिन कृपया यह भी ध्यान रखें कि यह सिस्टम को पुनरारंभ नहीं करेगा।

मुझे यह जानने में दिलचस्पी होगी कि ये सभी प्रदर्शन-वार की तुलना कैसे करते हैं।

संबंधित मुद्दे