استعلام SQL Server 2005 النص الكامل للبحث عن الكلمات / إيقاف الكلمات

StackOverflow https://stackoverflow.com/questions/1265460

سؤال

هل من الممكن الحصول على قائمة كلمات البحث / إيقاف النص الكامل من 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
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top