Perché o come FREETEXTTABLE assegna un valore di rango superiore ad altri
-
03-07-2019 - |
Domanda
Esiste una procedura di archivio che utilizza FREETEXTTABLE due volte su due tabelle, quindi unisce i risultati e restituisce i primi 50.
Il problema è se faccio una ricerca su "Women of Brewster", i risultati restituiscono "Confessione di un ex doofus motha" con un rango di 143 dalla tabella A e il secondo "Women of Brewster Place" con un rango di 102 dalla tabella B.
È a causa del conteggio? (Il totale dei risultati di ritorno della Tabella A è 2399. Il totale dei risultati di ritorno della Tabella B è 3445.)
Soluzione
La risposta breve:
Il ranking del Freetext si basa su OKAPI Formula di classifica BM25. Ogni termine nel la query viene classificata e i valori lo sono riassunto. Le query Freetext verranno aggiunte parole per la query via inflessionale generazione (forme derivate dal termini della query originale); queste parole sono trattati come termini separati con n ponderazione speciale o relazione con le parole da cui provenivano generato. Sinonimi generati dal Le funzionalità del thesaurus sono trattate come termini separati, equamente ponderati.
La risposta molto più lunga e molto più complicata può essere trovata sul sito di Microsoft, ovviamente. Per la matematica avanzata, fai clic qui .
Altri suggerimenti
1) Il file noise era limitato a pochi caratteri, il che significa che la parola " di " è ora considerato importante.
2) I risultati delle due tabelle (conteggio) sono importanti, poiché molto probabilmente alla tabella più piccola verrà assegnato un valore di peso migliore. Questo inclinerà il rango per essere più alto in una tabella più piccola.
Il collegamento di Josef a MSDN è stato ottimo nel capire come calcola il valore di rango.