Domanda

Ultimamente ho sperimentato la ricerca full text e sono curioso di sapere il significato del valore del punteggio. Ad esempio ho la seguente query:

SELECT table. * ,
MATCH (
col1, col2, col3
)
AGAINST (
'+(Term1) +(Term1)'
) AS Score
FROM table
WHERE MATCH (
col1, col2, col3
) 
AGAINST (
'+(Term1) +(Term1)'
)

Nei risultati per Punteggio ho visto risultati, per una query, tra 0,4667041301727 e 11,166275978088. Capisco che è l'idea di pertinenza di MySQL (maggiore è il peso).

Quello che non capisco è come MySQL ottiene quel punteggio. Perché il numero non viene restituito come decimale o altro?

Come mai se eseguo una query " IN MODALITÀ BOOLEANA " il punteggio restituisce sempre un 1 o uno 0? Tutti i risultati non sarebbero 1?

Spero solo in qualche illuminazione. Grazie.

È stato utile?

Soluzione

Generalmente la pertinenza si basa sul numero di corrispondenze di ciascuna riga con le parole fornite alla ricerca. Il valore esatto dipenderà da molte cose, ma conta davvero solo per il confronto con altri valori di pertinenza nella stessa query.

Se vuoi davvero la matematica dietro di essa, puoi trovarla in manuale interno .

Altri suggerimenti

Accetta la query " word1 word2 " come esempio.

La modalità BOOLEANO indica che l'intera query corrisponde al documento (ad esempio contiene sia word1 AND word2). La modalità booleana è una corrispondenza rigorosa.

La formula normalmente utilizzata si basa sul modello di spazio vettoriale della ricerca. Molto semplificato, individua due misure per determinare quanto sia importante una parola per una query. Il termine frequenza (i termini che ricorrono spesso in un documento sono più importanti di altri termini) e la frequenza inversa del documento (un termine che compare in molti documenti ha una ponderazione inferiore rispetto a un termine che compare in pochi documenti). Questo è noto come tf-idf e viene utilizzato come base per lo spazio vettoriale modello. Questi punteggi costituiscono la base per il Vector Space Model , che qualcun altro può spiegare a fondo. :)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top