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.)

Foi útil?

Solução

A resposta curta:

Classificação

freetext é 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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top