मैं निम्नलिखित MarkLogic क्वेरी है कि, जब क्वेरी कंसोल में चलाने के लिए, मुझे मेरे प्रणाली उपयोगकर्ता के जो व्यवस्थापक विशेषाधिकारों को पुनः प्राप्त करने की अनुमति देता है:दस्तावेज़ XPath MarkLogic के जावा खोज एपीआई बनाम XQuery/XSLT एपीआई के साथ खोज
xquery version "1.0-ml";
import schema namespace bfa="http://bitfood.org/auth" at "schema/auth/bitfood-auth.xsd";
cts:search(/bfa:AppUser[bfa:appAccess/@appRole = "ROLE_SYS_ADMIN"], cts:and-query(()))
मेरी अज्ञानता को क्षमा करें, लेकिन जावा क्लाइंट एपीआई का उपयोग करके इस क्वेरी को कार्यान्वित करना संभव है?
मुझे पता है कि मैं एक्ससीसी के माध्यम से कच्ची क्वेरी का उपयोग कर सकता हूं लेकिन मैं जितना संभव हो उससे बचने की कोशिश कर रहा हूं।
मैं जावा क्लाइंट एपीआई के दस्तावेज के माध्यम से खुदाई कर रहा हूं, दुर्भाग्य से, अन्य खोज विधियों के साथ संक्षेप में सौदों और कुछ भी संकेत नहीं मिला है कि यह संभव है।
अपडेट 1: दोस्तों, मुझे लगता है कि मैंने यहां एक शोस्टॉपर मारा है।
this question के अनुसार, जावा क्लाइंट एपीआई की क्वेरी विकल्प बिल्डिंग सुविधाओं को बहिष्कृत के रूप में चिह्नित किया गया है।
@Ehennum एक विकल्प सुझाता है जो या तो एक्सएमएल या जेएसओएन क्वेरी विकल्प का उपयोग करता है। मैं एक्सएमएल बनाने के लिए JAXB, JDOM, फ़ाइलों या किसी अन्य उपकरण का उपयोग कर सकते
String xmlOptions =
"<search:options "+
"xmlns:search='http://marklogic.com/appservices/search'>"+
"<search:constraint name='industry'>"+
"<search:value>"+
"<search:element name='industry' ns=''/>"+
"</search:value>"+
"</search:constraint>"+
"</search:options>";
दी है, लेकिन मेरी निजी राय है कि हम अभी भी storing queries in resource files in the code को सहारा ले रहे हैं, जो है: हालांकि, इस तरह क्वेरी विकल्प विनिर्देशों still essentially defined as raw Strings in the code हैं खुद में एक बुरी चीज नहीं है, लेकिन सावधानीपूर्वक विचार किए बिना कोड रखरखाव दुःस्वप्न का कारण बन सकता है।
इसके अलावा, यह विकल्प कि सर्वर पर आरईएसटी के माध्यम से इन विकल्पों को जारी रखने की आवश्यकता है, यदि यह अनिवार्य है तो विकल्पों की एक और परत पेश करती है क्योंकि विकल्पों को हर डेटाबेस इंस्टेंस के साथ सिंक्रनाइज़ करने की आवश्यकता हो सकती है जो कि काम करने के लिए है एक कोड आधार।
तो, यदि मार्कलॉगिक देव सुन रहे हैं, तो मुझे लगता है कि जावा क्लाइंट एपीआई परिपक्व या दस्तावेज नहीं है जैसा कि मैंने उम्मीद की थी।
1) मैं स्ट्रिंग फाइलों में मेरी XCC प्रश्नों को हार्डकोड और डेटा है कि मैं जरूरत डालें और एक XCC सत्र के माध्यम से पुनः प्राप्त करने के पैरामीटर प्लेसहोल्डर का उपयोग करने की कोशिश कर सकते:
मैं दो विकल्प अब तक की है। या।
2) अगर वहाँ http://marklogic.com/appservices/search
नाम स्थान के लिए किसी भी XSD फ़ाइलें हैं देखें और व्यवस्था "मापदंड" वर्गों a la Hibernate या QueryDSL जो, दुर्भाग्य से मुझे कहना पड़ेगा किसी प्रकार का निर्माण करने के लिए में उन लोगों से स्थिर JAXB वस्तुओं को बनाने, पहले से ही के कुछ स्तर का समर्थन करता है MongoDB पूछताछ।
दोस्तों, वास्तव में, कुछ प्रकार की धाराप्रवाह पूछताछ सुविधाओं जैसे कि QueryDSL को मार्कलॉगिक में लाएं और Rube Goldberg querying machine से छुटकारा पाएं।
अद्यतन 2: ऐसा लगता है कि यह एमएल 7 में संबोधित किया जा सकता है। इसके लिए आगे देख रहे हैं।
धन्यवाद!
दोस्तों, नीचे वोट क्यों? क्या मैंने अपना शोध नहीं किया? मैं यह नहीं दिखा रहा हूं कि न्यूनतम कोड बेहतर है? श्वास ... –