Correspondência de texto livre do SQL Server - como classifico por relevância
-
09-06-2019 - |
Pergunta
É possível ordenar os resultados no SQL Server 2005 pela relevância de uma correspondência de texto livre?No MySQL você pode usar a função MATCH (aproximadamente equivalente) na seção ORDER BY, mas não encontrei nenhuma equivalência no SQL Server.
De Documentos MySQL:
Para cada linha da tabela, MATCH() retorna um valor de relevância;isto é, uma medida de similaridade entre a string de pesquisa e o texto naquela linha nas colunas nomeadas na lista MATCH().
Por exemplo, você pode ordenar pelo número de votos, depois pela relevância e, finalmente, pela data de criação.Isso é algo que pode ser feito ou estou preso apenas em retornar os valores correspondentes e não ter essa capacidade de ordenação?
Solução
Se você estiver usando FREETEXTTABLE
então ele retorna um nome de coluna Rank
, então order by Rank
Deveria trabalhar.Não sei se outros métodos de pesquisa de texto livre também retornam esse valor ou não.Você pode tentar.
Outras dicas
Ambos FREETEXTTABLE
e CONTAINSTABLE
retornará o [RANK]
coluna, mas certifique-se de usar a variação correta ou a união de ambas para obter todos os resultados apropriados.