Aquí está mi problema. Por ejemplo, tengo una mesa los productos que contiene un campo, Nombre:Use SOUNDEX() palabra por palabra en SQL Server
Products
ID | Name | ..
1 | "USB Key 10Go"
2 | "Intel computer"
3 | "12 inches laptop computer"
...
Actualmente estoy poniendo en práctica un simple motor de búsqueda (SQL Server y ASP .NET, C#) para un iPhone aplicación Web y me gustaría utilizar la función SOUNDEX()
SQL Server.
El problema es que no puedo usar directamente SOUNDEX
en el campo Nombre. (Esto sería irrelevante ya que hay varias palabras en el nombre.) Me gustaría aplicar la función SOUNDEX
a cada palabra del campo Nombre, y luego ver si alguno de ellos coincide con la palabra clave investigada.
Si alguien tiene alguna pista de cómo hacer esto, sería increíble.
el número de registros en la tabla de productos. Una solución de programación (es decir, analizar el campo de nombre en un campo separado y luego aplicar soundex a cada uno) se ejecutará lentamente en una consulta. Puede que sea mejor cambiar la estructura de su base de datos, si es posible. – Sparky
, sí, si su conjunto de datos es grande en comparación, tardará una eternidad en ejecutarse. – DForck42
Si la base de datos es grande, eso es lo que estoy haciendo actualmente (en el código C# .NET, utilizando expresiones regulares para contar el número de palabras y añadir relevancia a solas a los resultados de la búsqueda), pero es muy lento. Estoy buscando FREETEXT en este momento, pero tengo algún problema con él (ver http://stackoverflow.com/questions/1923806/how-to-turn-on-the-fulltext-mode-on-ms-sql-2005) . – Charles