Pregunta

¿Es posible obtener la lista de búsqueda de texto completo de ruidos / parada palabras de SQL Server 2005 mediante la consulta de la base de datos?

Soy consciente de que las palabras de ruido están en un archivo de texto ~ / FTData / noiseEng.txt pero este archivo no se puede acceder a nuestra aplicación.

He mirada a la sys.fulltext_ * mesas pero estos no parecen tener las palabras.

¿Fue útil?

Solución

Parece que esto no es posible en SQL 2005, pero es en SQL Server 2008.

consultas avanzadas para usar SQL Server 2008 Búsqueda de texto completo stopwords / StopLists

  

Esta consulta siguiente obtiene una lista de todos   las palabras vacías que se incluyen con SQL   Server 2008. Este es un buen   mejora, no se puede hacer esto en   SQL Server 2005.

palabras vacías y Stoplists - SQL Server 2008

  

palabras irrelevantes de SQL Server 2005 han sido   reemplazado por palabras vacías. Cuando una base de datos   se actualiza a SQL Server 2008 desde una   versión anterior, los archivos de palabras irrelevantes   ya no se utilizan en SQL Server 2008.   Sin embargo, los archivos de palabras irrelevantes son   almacenada en el FTDATA \   FTNoiseThesaurusBak carpeta, y usted   puede usarlos más tarde, cuando la actualización o   la construcción de la correspondiente SQL Server   2008 stoplists. Para obtener información acerca   la actualización de los archivos de palabras irrelevantes para   stoplists, consulte la búsqueda de texto   Actualizar.

Otros consejos

Puedo copiar el ruido presentar las palabras de \Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\FTData en mi aplicación, y lo utilizan para despojar a las palabras irrelevantes.

    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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top