9

क्या प्रत्येक भाषा का अपना कॉलम दिए बिना बहु भाषा तालिका में FULLTEXT का उपयोग करने का कोई तरीका है?एक बहु भाषा कॉलम के साथ FULLTEXT खोज

मैं एक स्तंभ मैं खोज करने की आवश्यकता है, लेकिन उस कॉलम में भाषा से भिन्न होता है: en, de, it, kr, th

वर्तमान में मैं का निर्माण:

ProductID int 
Description nvarchar(max) 
Language  char(2) 

Language से एक हो सकता एक समन्वय और खोज के लिए इसका उपयोग करें। लेकिन यह केवल अंग्रेजी, जर्मन और इतालवी के लिए है, और यहां तक ​​कि उन लोगों के लिए भी यह समर्थन नहीं करता है। बाकी सब कुछ LIKE '%searchterm%' का उपयोग करता है, और मैं उस पर सुधार करने की कोशिश कर रहा हूं।

मैं एसक्यूएल सर्वर का उपयोग कर रहा 2005

उत्तर

11
भाषा प्रति एक अलग कॉलम के बजाय

, यदि आप जानते हैं जो पंक्तियां हो सकती हैं जो भाषा आप प्रति भाषा एक भी langauge का केवल पंक्तियों को शामिल करने के फ़िल्टर किए गए एक अनुक्रमित दृश्य बना सकते हैं और उनमें से प्रत्येक एफटीआई। यद्यपि आपको व्यक्तिगत रूप से प्रत्येक दृश्य को क्वेरी करने की आवश्यकता होगी।

+0

मैंने विचारों का उपयोग करने के बारे में सोचा नहीं था, जो वास्तव में काम कर सकता है। – egrunin

2

CREATE FULLTEXT INDEX पर Microsoft संदर्भ से हवाला देते हुए: कई भाषाओं में युक्त पाठ डेटा

गैर ब्लॉब और गैर एक्सएमएल स्तंभों के लिए, या मामले हैं जब पाठ की भाषा में संग्रहीत के लिए कॉलम अज्ञात है, यह आपके लिए तटस्थ (0x0) भाषा संसाधन का उपयोग करने के लिए उपयुक्त हो सकता है। हालांकि, सबसे पहले आपको तटस्थ (0x0) भाषा संसाधन का उपयोग करने के संभावित परिणामों को समझना चाहिए। संभावित समाधान और तटस्थ (0x0) भाषा संसाधन, का उपयोग करने के परिणामों के बारे में जानकारी Best Practices for Choosing a Language When Creating a Full-Text Index देखें।

+0

वे पृष्ठ मूल रूप से कहते हैं: नहीं। – egrunin

2

मैं 20+ भाषाओं के लिए विचारों का उपयोग कर रहा हूं। पूछताछ के लिए ठीक काम करता है (यदि स्पॉक्स में उपयोग करने के लिए सही दृश्य का चयन करने के लिए थोड़ा जटिल)। हालांकि, अंतर्निहित तालिका पर आवेषण और अपडेट गिर जाते हैं क्योंकि योजना में प्रत्येक फीट व्यू पर कोई भी चेक ट्रैकिंग शामिल होने की आवश्यकता नहीं होती है।

+0

धन्यवाद। मैं अब कहीं और काम कर रहा हूं, लेकिन आप कभी नहीं जानते कि कल क्या हो सकता है :) – egrunin

4

मुझे पता है कि यह एक पुराना सवाल है, लेकिन मुझे बस इसका सामना करना पड़ा।

मैंने देखा है कि एक दृष्टिकोण एक्सएमएल कॉलम का उपयोग करना है और xml:lang विशेषता निर्दिष्ट करना है। जैसा कि CREATE FULLTEXT INDEX (Transact-SQL) में बताया गया है।

XML- में संग्रहीत दस्तावेज़ों या ब्लॉब प्रकार कॉलम के लिए, दस्तावेज़ के भीतर भाषा एन्कोडिंग अनुक्रमण समय में इस्तेमाल किया जाएगा। उदाहरण के लिए, एक्सएमएल कॉलम में, एक्सएमएल: एक्सएमएल दस्तावेज़ों में लैंग विशेषता भाषा की पहचान करेगी। क्वेरी समय पर, भाषा_term में पहले निर्दिष्ट मान पूर्ण भाषा क्वेरी के लिए उपयोग की जाने वाली डिफ़ॉल्ट भाषा बन जाती है जब तक भाषा_term को पूर्ण-पाठ क्वेरी के हिस्से के रूप में निर्दिष्ट नहीं किया जाता है।

इस दृष्टिकोण का मुख्य नकारात्मक हिस्सा यह है कि यह डेटा प्रकार को एक्सएमएल में बदलता है, लेकिन उस समय हमारी जरूरतों के लिए यह ठीक काम करता प्रतीत होता था।

+0

मैं इसे देख लूंगा, धन्यवाद। – egrunin

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