Domanda

E 'possibile ottenere l'elenco di continuo rumore Text Search / stop parole da SQL Server 2005 interrogando il database?

Sono consapevole del fatto che le parole di rumore sono in un file di testo ~ / FTData / noiseEng.txt, ma questo file non è accessibile alla nostra applicazione.

Ho cerca nella sys.fulltext_ * tabelle ma queste non sembrano avere le parole.

È stato utile?

Soluzione

Sembra che questo non è possibile in SQL Server 2005, ma è in SQL Server 2008.

query avanzate per l'utilizzo di SQL Server 2008 Full Text Search Stopword / StopLists

  

Questa query successiva ottiene un elenco di tutti   le stopword forniti con SQL   Server 2008. Questo è un bel   miglioramento, non è possibile fare questo in   SQL Server 2005.

stopword e Stoplists - SQL Server 2008

  

SQL Server 2005 parole non significative sono state   sostituito da stopword. Quando un database   viene aggiornato a SQL Server 2008 da un   versione precedente, i file di parola non significativa   non sono più utilizzati in SQL Server 2008.   Tuttavia, i file di parola non significativa sono   memorizzato nella FTDATA \   FTNoiseThesaurusBak cartella e si   li possono utilizzare in seguito per l'aggiornamento o   costruire il corrispondente SQL Server   2008 stoplists. Per informazioni su   l'aggiornamento dei file di parola non significativa per   stoplists, vedi ricerca full-text   Aggiornamento.

Altri suggerimenti

I basta copiare il rumore file di parole da \Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\FTData nella mia app, e lo uso per mettere a nudo le parole non significative.

    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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top