Consulta de SQL Server 2005 Búsqueda de texto completo de ruido / stop palabras
-
13-09-2019 - |
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.
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