Pregunta

Me gustaría realizar una búsqueda con el motor de texto completo MSSQL donde da la siguiente entrada del usuario: "Cuadrado Hollywood"

quiero que los resultados tengan tanto en Hollywood como cuadrado [s] en ellos.

puedo crear un método en el servidor web (C #, ASP.NET) para producir dinámicamente una sentencia SQL como esto:

SELECT TITLE
FROM MOVIES
WHERE CONTAINS(TITLE,'"hollywood*"')
AND CONTAINS(TITLE, '"square*"')

Es bastante fácil. Sin embargo, me gustaría que esta en un procedimiento almacenado para el beneficio mayor velocidad y seguridad para añadir parámetros.

¿Puedo tener mi pastel y comérselo también?

¿Fue útil?

Solución

yo estaba de acuerdo con la anterior, mira en cláusulas AND

SELECT TITLE
FROM MOVIES
WHERE CONTAINS(TITLE,'"hollywood*" AND "square*"')

Sin embargo, usted no debería tener que dividir las frases de entrada, puede utilizar la variable

SELECT TITLE
FROM MOVIES
WHERE CONTAINS(TITLE,@parameter)

por cierto buscar el término exacto (contiene) buscar cualquier término en la frase (texto libre)

Otros consejos

La última vez que tuve que hacer esto (con MSSQL Server 2005) que terminó en movimiento toda la funcionalidad de búsqueda a Lucene (la versión Java, aunque ahora existe Lucene.Net creo). Tenía grandes esperanzas de la búsqueda de texto completo, pero este problema específico me molestó tanto me di por vencido.

¿Ha intentado utilizar el operador lógico en la cadena? Yo paso en una cadena de texto a mi sproc y esas cosas 'Y' entre las palabras.

http://msdn.microsoft.com/en-us/library /ms187787.aspx

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top