2008-08-04 14 views
16

उदाहरण के लिए, मेरी क्वेरी SQL Server 2005 का उपयोग कर निम्न की तरह है:एसक्यूएल फुल टेक्स्ट इंडेक्सिंग # # वाले शब्दों के लिए रिटर्न परिणाम क्यों नहीं देता है?

SELECT * FROM Table WHERE FREETEXT(SearchField, 'c#') 

मेरे पास कॉलम सर्चफ़िल्ल्ड का उपयोग करने के लिए परिभाषित एक पूर्ण पाठ अनुक्रमणिका है जो उपयोग करते समय परिणाम देता है:

SELECT * FROM Table WHERE SearchField LIKE '%c#%' 

मुझे विश्वास है # एक विशेष पत्र है, तो मैं ऊपर दिए गए प्रश्न के लिए FREETEXT को सही तरीके से काम करने की अनुमति कैसे दूं?

+0

बस एक अनुमान है, लेकिन "सी \\ #" के बारे में कैसे? –

उत्तर

10

# char को विराम चिह्न के रूप में अनुक्रमित किया गया है और इसलिए अनदेखा किया गया है, इसलिए ऐसा लगता है कि हम हमारे शब्द अनुक्रमण से अनदेखा सूचियों से पत्र सी को हटा देंगे।

ऐसा करने के बाद स्थानीय रूप से परीक्षण किया गया और इंडेक्स का पुनर्निर्माण और मुझे परिणाम मिलते हैं!

अनुक्रमित कॉलम पर एक अलग शब्द ब्रेकर भाषा का उपयोग करना चाहते हैं, ताकि उन विशेष वर्णों को अनदेखा नहीं किया जा सके।

संपादित करें: मैं भी this information पाया: ((यदि ग अपने शोर शब्द सूची में नहीं है, बाद में शोर शब्द सूचियों के बारे में अधिक देखें), लेकिन सी # के रूप में सी # अनुक्रमणित है

C# ग के रूप में सूचीबद्ध किया गया है एसक्यूएल 2005 और एसक्यूएल 2000 Win2003 पर चल रहे हैं भले ही सी या सी आपके शोर शब्द सूची में है)। यह केवल सी # नहीं है जिसे सी # के रूप में संग्रहीत किया जाता है, लेकिन इसके बाद कोई भी पूंजी अक्षर # होता है। इसके विपरीत, सी ++ (और किसी भी अन्य निचले-चरण वाले अक्षर को ++ के बाद) को सी के रूप में अनुक्रमित किया जाता है (भले ही सी आपके शोर शब्द सूची में है)।

1

इंडेक्सिंग सर्विस क्वेरी भाषा के बारे में ज्यादा दोहराया मदद पृष्ठ का हवाला देते हुए:

ऐसे & के रूप में विशेष रूप से इलाज किया वर्णों का उपयोग करने के लिए, |, ^, # @ $, (,), एक प्रश्न में, उद्धरण चिह्नों (") में अपनी क्वेरी संलग्न करें।

जहां तक ​​मुझे पता है, MSSQL में पूर्ण पाठ खोज इंडेक्सिंग सेवा द्वारा भी की जाती है, इसलिए इससे मदद मिल सकती है।

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