Coincidencia de texto libre de SQL Server: ¿cómo ordeno por relevancia?
-
09-06-2019 - |
Pregunta
¿Es posible ordenar los resultados en SQL Server 2005 según la relevancia de una coincidencia de texto libre?En MySQL puedes usar la función MATCH (aproximadamente equivalente) en la sección ORDER BY, pero no he encontrado ninguna equivalencia en SQL Server.
Desde el documentos MySQL:
Para cada fila de la tabla, MATCH() devuelve un valor de relevancia;es decir, una medida de similitud entre la cadena de búsqueda y el texto de esa fila en las columnas nombradas en la lista MATCH().
Entonces, por ejemplo, podría ordenar por número de votos, luego por relevancia y finalmente por fecha de creación.¿Es esto algo que se puede hacer, o tengo que limitarme a devolver los valores coincidentes y no tener esta capacidad de ordenar?
Solución
Si estas usando FREETEXTTABLE
luego devuelve un nombre de columna Rank
, entonces order by Rank
Deberia trabajar.No sé si otros métodos de búsqueda de texto libre también devuelven este valor o no.Puedes intentarlo.
Otros consejos
Ambos FREETEXTTABLE
y CONTAINSTABLE
devolverá el [RANK]
columna, pero asegúrese de utilizar la variación correcta o la unión de ambas para obtener todos los resultados apropiados.