Tengo lo que creo que es un escenario muy básico, pero lo que he leído lo hace sonar como que esto no es fácil utilizando el catálogo de SQL Server de texto completo y los índices.Columnas múltiples con ContainsTable y lógica booleana con índice de texto completo
Tengo 2 columnas, nombre y apellido. Quiero admitir la búsqueda de texto completo en ellos de modo que si alguien escribe "John Smith" personas con una coincidencia en , ambos primero y el último aparecen primero.
Aunque es fácil crear un índice en varias columnas y es fácil de buscar en múltiples columnas, la puntuación no refleja múltiples columnas.
SELECT [Key], Rank
FROM CONTAINSTABLE([User], (FirstName,LastName), '<CLAUSE_HERE>')
- Si CLAUSE_HERE es "John Smith" no da resultados positivos, ya que esa frase no existe en cualquiera de los campos.
- Si es "john OR smith" obtengo todos los usuarios con cualquier nombre en cualquier campo, ordenados en un orden inútil.
- Si es "john AND smith" no obtengo ningún resultado, porque ninguno de los campos contiene ambas palabras.
parece que la única solución es autogenerar una consulta que se ejecuta containstable
en cada campo, hace algunos cálculos, resume las puntuaciones, etc. ¿Eso suena bien? ¿Hay una manera más fácil de evitarlo? Mi consulta real tiene muchos más campos, este es un ejemplo simplificado.
Totally worked !! ¿Por qué el texto completo no hace esto automáticamente? Pensé que aplicar texto completo en varias columnas funcionaría así desde el primer momento. adivina no. –