2011-11-01 8 views
7

मैं एक बहुविकल्पीय संपत्ति के लिए इनपुट पैरामीटर के रूप में एक या अधिक मानों का उपयोग करके सामग्री भंडार में एक खोज करना चाहता हूं: कुछ प्रकार: प्राथमिक प्रकार 'nt: unstructured' के साथ सभी नोड्स खोजें जिनके संपत्ति 'मल्टीप्रॉप' (बहुविकल्पीय संपत्ति) में "एक" और "दो" दोनों मान होते हैं।जेसीआर एसक्यूएल 2 मल्टीवाइवल गुण खोज

क्वेरीस्ट्रिंग क्वेरी को पास करने के लिए कैसे प्रबंधित किया जाएगा। प्रबंधक.createQuery को पसंद करना चाहिए?

धन्यवाद।

उत्तर

13

आप अन्य मानदंडों की तरह बहु-मूल्यवान गुणों पर मानदंडों का इलाज कर सकते हैं। उदाहरण के लिए, निम्न क्वेरी सभी नोड्स 'someProp' संपत्ति पर 'सफेद कुत्ते के एक मूल्य है कि मिल जाएगा:

SELECT * FROM [nt:unstructured] WHERE someProp = 'white dog' 

' someProp 'संपत्ति से अधिक मान है, तो कम से कम एक साथ एक नोड है मानदंडों को पूरा करने वाले मूल्य परिणामों में शामिल किए जाएंगे।

ऐसे नोड्स को ढूंढने के लिए जिनमें बहु-मूल्यवान संपत्ति के एकाधिक मान हैं, बस और एक साथ कई मानदंड।

SELECT * FROM [nt:unstructured] WHERE someProp = 'white dog' 
            AND someProp = 'black dog' 

ऑपरेटरों का कोई भी 'की तरह' भी शामिल है, काम करेंगे:

SELECT * FROM [nt:unstructured] WHERE someProp LIKE '%white%' 
            AND someProp LIKE '%black%' 

अन्य संयोजनों की, संभव हो रहे हैं उदाहरण के लिए, निम्न क्वेरी सभी नोड्स है, जिनमें निर्दिष्ट मूल्यों के दोनों वापस आ जाएगी पाठ्यक्रम।

+1

धन्यवाद। प्रश्न, कृपया: ये दो समाधान कौन सा प्रदर्शन है? या वे समान प्रदर्शन के रूप में होना चाहिए? – silverb77

+0

अब, जवाब प्राप्त करने से पहले मैंने कुछ की तरह कुछ कोशिश की जैसे '% black%' और यह धीमा लगता है ... क्या ऐसा इसलिए है क्योंकि मैं = के बजाय LIKE का उपयोग कर रहा था? – silverb77

+0

अंतिम प्रश्न कृपया: प्रदर्शन के बारे में सोचते हुए, क्या आप getNode का उपयोग करके "मैन्युअल" खोज करेंगे और इनपुट पैरामीटर के विरुद्ध प्रत्येक प्रोपेरी के मानों की जांच करेंगे या आप जेसीआर एसक्यूएल 2 चयन करेंगे? बहुत धन्यवाद। – silverb77

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