2010-05-11 14 views
6

मैं दो कॉलम पर एक पूर्ण टेक्स्ट खोज को कार्यान्वित करने की कोशिश कर रहा हूं जिसके लिए मैंने एक दृश्य बनाया: विक्रेता नाम, उत्पाद नाम। मेरे पास पूर्ण टेक्स्ट इंडेक्स आदि काम कर रहा है लेकिन वास्तविक क्वेरी मेरे लिए कुछ समस्याएं पैदा कर रही है।एसक्यूएल सर्वर में एकाधिक कॉलम पर पूर्ण टेक्स्ट खोज को आप कैसे कार्यान्वित करते हैं?

मैं उन कुछ मानक खोज परंपराओं का उपयोग करने में सक्षम होना चाहते हैं, और या नहीं और) द्वारा (शर्तों का समूह है जो ठीक है, लेकिन मैं से अधिक खोज दोनों स्तंभ तो उदाहरण के लिए लागू करना चाहते हैं अगर मैं एक को चलाने के लिए थे क्वेरी जैसे:

SELECT * FROM vw_Search 
WHERE CONTAINS((VendorName, ProductName), "Apple AND iTunes") 

यह व्यक्तिगत रूप से दोनों शब्दों के लिए विक्रेता का नाम जाँच और उसके बाद दोनों पदों जो मैच अभ्यस्त जब तक विक्रेता "एप्पल आईट्यून" कहा जाता था के लिए उत्पाद का नाम जाँच यानी प्रत्येक स्तंभ के लिए क्वेरी को लागू करने जा रहा है।

अगर मैं करने के लिए क्वेरी को बदलें:

SELECT * FROM vw_Search 
WHERE CONTAINS(VendorName, "Apple OR iTunes") 
AND CONTAINS(ProductName, "Apple OR iTunes") 

तो यह काम करता है लेकिन क्वेरी लेखन (जैसे सिर्फ सेब के लिए खोज के रूप में) और प्रयोक्ता के अन्य खोज प्रश्नों टूट जाता है यह क्या के रूप में ज्यादा मतलब नहीं है वे लिखने की संभावना है और इसके लिए इसे एक या काम करने की आवश्यकता है।

मैं जो चाहता हूं वह वापस लौटना है यदि दो खोज शब्द वैध थे, तो यह उदाहरण के लिए उत्पाद नाम आईट्यून के साथ सेब नाम के सभी विक्रेताओं से मेल खाता है।

क्या मुझे इस दृश्य में एक अलग क्षेत्र बनाना चाहिए जो विक्रेता और उत्पाद फ़ील्ड को जोड़ता है और उस नए क्षेत्र पर पहली क्वेरी करता है या क्या मुझे कुछ याद आ रहा है?

इसके अलावा किसी को भी प्रश्नों को सत्यापित करने की मौजूदा विधि के बारे में पता होगा?

उत्तर

7

SQL Server के पुराने संस्करणों में, एकाधिक कॉलम से मेल खाने वाले प्रश्न।

हालांकि, इसे bug माना गया था।

एकाधिक कॉलम से मेल खाने के लिए, आपको उन्हें एक गणना कॉलम में जोड़ना चाहिए और उस कॉलम पर एक अनुक्रमणिका बनाना चाहिए।

+0

यह SQL सर्वर दृश्य के साथ असंभव प्रतीत होता है - क्या मैं गलत हूं? (कॉलम की गणना करने वाले दृश्य पर एक गैर-क्लस्टर्ड इंडेक्स नहीं बना सकता है) –

+0

@ रॉयटिंकर: "दृश्य जो गणना की गई है" द्वारा आपका क्या मतलब है? – Quassnoi

+0

कोई बात नहीं, मेरी टिप्पणी गलत है (वह _is_ संभव है)। "देखें कि कॉलम की गणना किसने की है" मेरा मतलब था कि आपने ऊपर क्या कहा था, मानते हुए कि आप एक दृश्य बनाना चाहते हैं। –

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