Pergunta

É possível obter a lista de pesquisa de texto completo ruído / palavras de parada de SQL Server 2005, consultando o banco de dados?

Estou ciente de que as palavras de ruído estão em um arquivo de texto ~ / FTData / noiseEng.txt mas este arquivo não está acessível para a nossa aplicação.

Eu tenho olhada no sys.fulltext_ * mesas mas estes não parecem ter as palavras.

Foi útil?

Solução

Parece que isso não é possível no SQL 2005, mas está em SQL Server 2008.

consultas avançadas para usar o SQL Server 2008 texto completo Palavras de interrupção da pesquisa / StopLists

Esta próxima consulta obtém uma lista de todos os stopwords que acompanham o SQL Server 2008. Este é um bom melhoria, você não pode fazer isso em SQL Server 2005.

Stopwords e Stoplists - SQL Server 2008

SQL Server 2005 palavras de ruído têm sido substituído por stopwords. Quando um banco de dados é atualizado para SQL Server 2008 a partir de um versão anterior, os arquivos de palavras de ruído não são mais usados ??no SQL Server 2008. No entanto, os arquivos de palavras de ruído são armazenado no FTDATA \ FTNoiseThesaurusBak pasta, e você pode usá-los mais tarde, quando a atualização ou construção do correspondente SQL Server 2008 stoplists. Para obter informações sobre arquivos de atualização de palavras de ruído para stoplists, consulte Full-Text Search Upgrade.

Outras dicas

Eu só copiar o arquivo de palavras de ruído de \Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\FTData em meu aplicativo, e usá-lo para retirar palavras de ruído.

    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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top