2010-01-12 7 views
8

मैं SQL सर्वर 2008 पूर्ण पाठ खोज इंजन का उपयोग कर ज्ञान आधार प्रोजेक्ट पर काम कर रहा हूं। प्रोजेक्ट उन लेखों और फ़ाइलों में शामिल है जहां प्रत्येक आलेख में एकाधिक फाइलें होती हैं। उन लेखों में पूरी सामग्री शुद्ध HTML है।एसक्यूएल सर्वर 2008 में एचटीएमएल टैग को अनदेखा कैसे करें पूर्ण पाठ खोज

अभी, मैंने सफलतापूर्वक SQL सर्वर 2008 पर पूर्ण टेक्स्ट कैटलॉग और अनुक्रमणिका बनाई है और मेरा डेटाबेस संस्करण 10 संगत है। जबकि इन लेखों में खोज,

1) html टैग की अनदेखी करने के क्या यह संभव है, और अधिक स्पष्ट रूप में "< ...>" युक्त ग्रंथों, क्योंकि अगर मैं div के लिए खोज करना चाहते हैं:

यहाँ मेरी सवाल कर रहे हैं , टेबल इत्यादि का कोई परिणाम नहीं लौटाया जाना चाहिए?

2) लेख किसी भी समय अपडेट किए जाएंगे, इसलिए जब कोई नया रिकॉर्ड डाला जाता है तो पूर्ण टेक्स्ट इंडेक्स को अपडेट किया जाना चाहिए। क्या पूर्ण टेक्स्ट कैटलॉग बनाते समय केवल "ट्रैक चेंज ऑटोमेटिक" सेट करना पर्याप्त है?

3) हम इसके बाद FILESTREAM सुविधा का उपयोग कर सकते हैं, क्या SQL Server 2008 पूर्ण पाठ अनुक्रमणिका का उपयोग कर फ़ाइलों पर अच्छा प्रदर्शन करता है? एसक्यूएल सर्वर 2008 इंडेक्सिंग पर क्या विशिष्ट दस्तावेज़ प्रकार अच्छा है?

सादर

+0

हाय दोस्त, मुझे लगता है कि सबसे अच्छा समाधान रेगुलर एक्सप्रेशन "<(.|\n)*?>" एक SQL CLR विधानसभा चेक के साथ साथ एचटीएमएल को बदलने के लिए है यह लिंक http://justgeeks.blogspot.com/2008/08/adding-regular-expressions-regex-to-sql.html –

उत्तर

-1

कृपया इन के लिए जाँच:

1) एसक्यूएल सर्वर पूर्ण पाठ में, हम शोर शब्द को परिभाषित कर सकते/stopwords। आप शोर विश्व फ़ाइल को संपादित कर सकते हैं और फिर आपको कैटलॉग का पुनर्निर्माण करना होगा। तो आप सभी एचटीएमएल टैग शोर के रूप में डाल सकते हैं। कृपया जांच करें

http://msdn.microsoft.com/en-us/library/ms142551.aspx

2) ट्रैक के साथ बदल जाता है यह स्वचालित रूप से वर्तमान पूर्ण पाठ खोज में परिवर्तन शामिल है, लेकिन इन नए जोड़े गए लेख की रैंकिंग पिछले से बदल जाती है। तो जब तक आप मास्टर इंडेक्स को सिंक नहीं करते हैं, तब तक यह रैंकिंग के साथ ऊपर और नीचे छोड़ देगा।

3) जहां तक ​​मुझे पता है कि हम कस्टम फ़िल्टर, स्टेमर्स और शब्द ब्रेकर लागू कर सकते हैं और SQL सर्वर पूर्ण पाठ खोज में प्लग कर सकते हैं। डिफ़ॉल्ट रूप से मुझे पूरी सूची नहीं पता हो सकता है, लेकिन यह डॉक्टर और पीडीएफ करता है।

एसक्यूएल सर्वर पूर्ण पाठ खोज 2008 को अधिक जानकारी के लिए कृपया जाँच करें:

http://technet.microsoft.com/en-us/library/cc721269.aspx

+1

स्टॉपवर्ड को HTML टैग फ़िल्टर नहीं करना चाहिए। अगर कोई टेक्स्ट है जैसे <

"मैं इसे फ़िल्टर करने के लिए एक स्टॉपवर्ड के रूप में क्या कहूंगा," फॉर्म "," "आदि ?? – Myra

+0

मैंने सोचा कि आप केवल मूल HTML टैग को अनदेखा करना चाहते हैं। इस स्थिति के लिए मैं कस्टम वर्ड ब्रेकर और स्टेमर को IWordBreaker, IStemmer को लागू करके और यदि आवश्यक IFilter इंटरफेस को लागू करके और फिर अपने SQL सर्वर में प्लग इन करने के लिए अनुशंसा करना चाहता हूं। –

+0

क्या आप इन इंटरफेस को लागू करने का एक उदाहरण देंगे? – Myra

26

वहाँ .htm और .html फ़ाइलों के लिए एक फिल्टर है।

SELECT * FROM sys.fulltext_document_types 

आप देखना चाहिए::

अगर आप फिल्टर स्थापित रन इस एसक्यूएल देखने के लिए

.htm E0CA5340-4534-11CF-B952-00AA0051FE20 C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn\nlhtml.dll 12.0.6828.0 Microsoft Corporation 

.html E0CA5340-4534-11CF-B952-00AA0051FE20 C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn\nlhtml.dll 12.0.6828.0 Microsoft Corporation 

इसलिए, अगर आप varbinary (अधिकतम) अपने लेख स्तंभ में बदल सकते हैं, तो आप उस पर एक पूर्ण पाठ अनुक्रमणिका जोड़ सकते हैं और एक दस्तावेज़ प्रकार निर्दिष्ट कर सकते हैं।html '

एक बार सूचकांक आबादी है, तो आप इस एसक्यूएल उपयोग करने वाले कीवर्ड की पुष्टि कर सकते हैं:

SELECT display_term, column_id, document_count 
FROM sys.dm_fts_index_keywords 
(DB_ID('your_db'), OBJECT_ID('your_table')) 
+0

मेरा पहला अपवोट :) – Myra

+0

मैं एक varbinary (अधिकतम) कॉलम पर एक पूर्ण पाठ अनुक्रमणिका जोड़ने के लिए प्रतीत नहीं कर सकता। न ही मैं दस्तावेज़ प्रकार निर्दिष्ट करने के बारे में पता लगा सकता हूं (यदि मैं इसे टेक्स्ट में सेट करता हूं) – Radderz

+0

ऐसा लगता है कि SQL प्रबंधन स्टूडियो थोड़ा प्रतिबंधित है। पूर्ण पाठ अनुक्रमणिका को इसके बजाय एक सादे SQL कथन के रूप में बनाया जा सकता है, और गणना की गई कॉलम इस प्रक्रिया में बहुत उपयोगी हैं; स्वीकार्य उत्तर के बिंदु 2 को यहां देखें: https://stackoverflow.com/questions/17179772/getting-top-n-latest-entries-from-sql-server-full-text-index – Radderz

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