クエリのSQL Server 2005のフルテキスト検索ノイズ/ストップワード
-
13-09-2019 - |
質問
は、データベースを照会することによって、SQL Server 2005のからの言葉を/全文検索ノイズの一覧を取得停止することはできますか?
私は、ノイズワードは、テキストファイル〜/ FTDATA / noiseEng.txtであることを認識していますが、このファイルには、我々のアプリケーションにアクセスすることはできません。
私はsys.fulltext_ *テーブルを見てきましたが、これらは言葉を持っていないようです。
解決
SQL 2005で可能ではなく、SQL Server 2008であることが表示されます。
<のhref = "http://arcanecode.com/2008/06/03/advanced-queries-for-using-sql-server-2008-full-text-search-stopwords-stoplists/" のrel =」 SQL Server 2008のフルテキスト検索ストップワード/ストップリストの
を使用するためのnoreferrer nofollowを ">高度なクエリーこの次のクエリは、すべてのリストを取得します SQLに同梱されてストップワード Server 2008のこれがいいです 改善は、あなたがにこれを行うことはできません SQL Server 2005のます。
ストップワードとストップリスト - SQL Server 2008のの
SQL Server 2005のノイズワードはされています ストップワードで置き換えます。データベース からSQL Server 2008にアップグレードされます 以前のリリースでは、ノイズワードファイル もはや、SQL Server 2008で使用されていません。 ただし、ノイズワードファイルがあります FTDATA \に保存されています FTNoiseThesaurusBakフォルダ、およびあなた 更新時に、後でそれらを使用することができますか 対応するSQL Serverを構築します 2008のストップリスト。詳細については にノイズワードファイルをアップグレード ストップリストは、フルテキスト検索を参照してください アップグレードします。
他のヒント
私はちょうど私のアプリの中に言葉が\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