استعلام SQL Server 2005 النص الكامل للبحث عن الكلمات / إيقاف الكلمات
-
13-09-2019 - |
سؤال
هل من الممكن الحصول على قائمة كلمات البحث / إيقاف النص الكامل من SQL Server 2005 عن طريق الاستعلام عن قاعدة البيانات؟
أنا أدرك أن كلمات الضوضاء موجودة في ملف نصي ~ / ftdata / noiseeng.txt ولكن هذا الملف غير قابل للوصول إلى تطبيقنا.
لقد نظرت إلى جداول Sys.fulltext_ ولكن هذه لا يبدو أن هذه الكلمات.
المحلول
يبدو أن هذا غير ممكن في SQL 2005 ولكن في SQL Server 2008.
استفسارات متقدمة لاستخدام SQL Server 2008 بحث النص الكامل إيقاف الكلمات / السداد
يحصل هذا الاستعلام التالي على قائمة بجميع كلمات التوقف التي تحتوي على SQL Server 2008. هذا تحسن جميل، لا يمكنك القيام بذلك في SQL Server 2005.
كلمات سقفية وقبال - SQL Server 2008
تم استبدال كلمات الضوضاء SQL Server 2005 بإيقاف الكلمات. عند ترقية قاعدة بيانات إلى SQL Server 2008 من إصدار سابق، لم تعد ملفات Noise-Word قد استخدمت في SQL Server 2008. ومع ذلك، يتم تخزين ملفات Word الضوضاء في مجلد FTData Ftnoisethesaurusbak، ويمكنك استخدامها لاحقا عند تحديث أو بناء SQL Server 2008 المقابلة. للحصول على معلومات حول ترقية ملفات الكلمة الضوضاء إلى Stoplists، راجع ترقية البحث عن النص الكامل.
نصائح أخرى
أنا فقط نسخ ملف كلمات الضوضاء من \Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\FTData
في التطبيق الخاص بي، واستخدمها لشريط كلمات الضوضاء.
Public Function StripNoiseWords(ByVal s As String) As String
Dim NoiseWords As String = ReadFile("/Standard/Core/Config/noiseENU.txt").Trim
Dim NoiseWordsRegex As String = Regex.Replace(NoiseWords, "\s+", "|") ' about|after|all|also etc.
NoiseWordsRegex = String.Format("\s?\b(?:{0})\b\s?", NoiseWordsRegex)
Dim Result As String = Regex.Replace(s, NoiseWordsRegex, " ", RegexOptions.IgnoreCase) ' replace each noise word with a space
Result = Regex.Replace(Result, "\s+", " ") ' eliminate any multiple spaces
Return Result
End Function