5

के साथ तालिका पर पूर्ण पाठ खोज मैं SQL Server 2008 पर पूर्ण पाठ खोज को काम करने की कोशिश कर रहा हूं, हालांकि तालिका जो मैं इंडेक्स करने की कोशिश कर रहा हूं वह एक समग्र प्राथमिक कुंजी वाला एक सारणी है, कुछ ऐसा इस:एसक्यूएल सर्वर 2008 एक समग्र प्राथमिक कुंजी

EXEC sp_fulltext_catalog 'My_Catalog', 'create' 
EXEC sp_fulltext_table 'Message', 'create', 'My_Catalog', 'PK__MESSAGES__C87C0C9C0EC32C7A' // PK__MESSAGES__C87C0C9C1EC32C6A is a composite key 

और मैं निम्नलिखित त्रुटि मिलती है:। " 'PK__MESSAGES__C87C0C9C1EC32C6A' एक पूर्ण-पाठ खोज कुंजी लागू करने के लिए एक वैध सूचकांक नहीं है एक पूर्ण-पाठ खोज कुंजी एक अद्वितीय, गैर-व्यर्थ होना चाहिए, सिंगल-कॉलम इंडेक्स जो ऑफ़लाइन नहीं है, को गैर-निर्धारिती या अपर्याप्त गैर-प्रभावित कंप्यूटेड कॉलम पर परिभाषित नहीं किया गया है, इसमें फ़िल्टर नहीं है, और इसमें अधिकतम 900 बाइट्स हैं। पूर्ण-पाठ कुंजी के लिए एक और अनुक्रमणिका चुनें। "

इसका मतलब है कि मैं संयुक्त प्राथमिक कुंजी के साथ तालिकाओं में पूर्ण पाठ खोज का उपयोग नहीं कर सकता? या मुझ से कुछ गलत हो रहा है?

अग्रिम धन्यवाद

उत्तर

8

मुझे लगता है कि त्रुटि संदेश बहुत स्पष्ट है, नहीं?

" PK_MESSAGES_C87C0C9C1EC32C6A is not a valid index to enforce a full-text search key. A full-text search key must be a unique, non-nullable, single-column index which is not offline, is not defined on a non-deterministic or imprecise nonpersisted computed column, does not have a filter, and has maximum size of 900 bytes. Choose another index for the full-text key."

अपने सूचकांक अद्वितीय नहीं, नहीं गैर-व्यर्थ है, और नहीं एकल-स्तंभ है, तो यह की प्रतिलिपि प्राप्त अनुक्रमण के लिए इस्तेमाल नहीं किया जा सकता है।

This means that i can't use the full text search in tables with composite primary keys? Or am i doing something wrong?

नहीं, जैसा कि त्रुटि कहती है - इस प्रकार की अनुक्रमणिका काम नहीं करेगी। अवधि। इसके चारों ओर कोई रास्ता नहीं।

जैसा कि रीमस ने बताया - यह कभी नहीं कहता कि इसे प्राथमिक कुंजी सूचकांक होना चाहिए! यदि आपके पास टेबल पर कुछ अन्य गैर-शून्य और अद्वितीय फ़ील्ड है, तो आप अपने उद्देश्यों के लिए उस फ़ील्ड पर एक अद्वितीय अनुक्रमणिका का उपयोग कर सकते हैं। आप बस अपनी तालिका में केवल INT IDENTITY(1,1) फ़ील्ड जोड़ सकते हैं और उस एकल फ़ील्ड पर UNIQUE INDEX डाल सकते हैं और आपको जाने के लिए अच्छा होना चाहिए।

+0

जो कुछ मैं उम्मीद कर रहा था, मैं बस गलत हो सकता था, क्योंकि एक समग्र प्राथमिक कुंजी अभी भी एक अद्वितीय बाधा है (लेकिन सिंगल-कॉलम नहीं, समस्या है)। बहुत बहुत धन्यवाद, मैंने अभी अद्वितीय क्षेत्र बनाया है, और काम किया है =) –

4

A full-text search key must be a unique, non-nullable, single-column index which is not offline, is not defined on a non-deterministic or imprecise nonpersisted computed column, does not have a filter, and has maximum size of 900 bytes.

नोट यह प्राथमिक कुंजी (यानी। मेज पर प्राथमिक कुंजी बाधा) होना जरूरी नहीं है। एक गैर-शून्यणीय एकल कॉलम पर कोई भी अद्वितीय अनुक्रमणिका काम करेगी। यदि आपके पास ऐसा कोई कॉलम नहीं है, तो तालिका में एक पहचान कॉलम जोड़ें और इसमें एक अनुक्रमणिका जोड़ें, फिर पूर्ण अनुक्रमणिका कैटलॉग के लिए इस अनुक्रमणिका का उपयोग करें।

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