Giovanni Bricconi

My site on WordPress.com

Solr – Filtrare risultati irrilevanti

leave a comment »

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

 

Written by Giovanni

January 4, 2013 at 8:17 am

Posted in Varie

Leave a comment