Solr – Filtrare risultati irrilevanti
la ricerca di frasi composte da molte parole pone diversi problemi.
Il minimo numero di parole che devono essere trovate non può essere il 100% perchè non tutte le parole hanno la stessa importanza e la presenza di quelle chiave è sufficiente a trovare documenti attinenti.
però il numero di risultati trovati viene comunque influenzato malamente dalle parole poco significative.
per esempio se cercassi “il cane e la gatta” con un numero minimo di parole =3 (mm=3) avrei come ultimi risultati a bassa rilevanza conententi solo “il” e “e” “la”. Chiaramente si può intervenire eliminando gli articoli italiani dall’indice, ma questo è solo un esempio il problema si riproporrebbe con altre parole diffuse, ad esempio cercando il titolo di un film.
Ieri ho aggiunto un nuovo trucchetto al mio arsenale solr
q={!frange l=0.75}query($qq)&qq={!dismax mm=1 qf=”name description” pf=”name description” qt=myconf}tanto va la gatta al lardo che ci lascia lo zampino
Questo mostriciattolo esegue una query dismax su alcuni campi, richiamando le impostazioni di un query type e modificandolo in modo da trovare tutti i risultati che matchano almeno una parola. Fatto questo i risultati vengono filtrati in modo da avere almeno uno score 0.75
Volendo generalizzare, se analizzando la rilevanza dei risultati prodotti doveste scoprire che sotto un certo valore quello che esce è generalmente irrilevante e non vale la pena listarlo potete intervenire aggiungendo un frange e magia non dovete ritarare tutta la configurazione del qt come il mm, i pesi di qf e pf ecc.
enjoy
Leave a comment