Por que ou como se FREETEXTTABLE dar um valor de classificação mais elevada do que outros
-
03-07-2019 - |
Pergunta
Há um procedimento de armazenamento que usos FREETEXTTABLE duas vezes em duas tabelas e, em seguida, mescla os resultados e retorna o top 50.
O problema é se eu fizer uma pesquisa sobre "Mulheres de Brewster", os resultados retorna "Confissão de um ex doofus motha" com uma classificação de 143 da tabela A e segundo "Mulheres de Brewster Place" com uma classificação de 102 da tabela B.
Isso é por causa da contagem? (Resultados de retorno Tabela Um total é 2399. resultados de retorno Tabela B total é de 3445.)
Solução
A resposta curta:
Classificaçãofreetext é baseado no OKAPI Classificação do BM25 fórmula. Cada termo na consulta é classificado, e os valores são somados. consultas FREETEXT irá adicionar palavras para a consulta via inflectional geração (provindo formas do termos da consulta original); estas palavras são tratada como termos separados com nenhuma ponderação especial ou com relacionamento as palavras das quais foram gerado. Sinônimos gerado a partir do característica da enciclopédia são tratados como separar, termos igualmente ponderados.
A resposta muito mais tempo, e muito mais complicado pode ser encontrada no site da Microsoft, é claro. Para matemática avançada, clique aqui .
Outras dicas
1) O arquivo de ruído foi limitada a alguns caracteres, o que significa que a palavra "de" é agora considerar importante.
2) As duas tabelas de resultados (contagem) fazer a matéria, uma vez que a mesa menor provavelmente será dado um valor de peso melhor. Isto irá distorcer o posto a ser maior em uma tabela menor.
link de Josef para MSDN foi grande em descobrir como ele calcula o valor de classificação.