Considerate le ricerche fatte sui cataloghi online delle biblioteche (OPAC). Vorrei permettere all'utente di ordinare i risultati per rilevanza. Il mio database ha tabelle full-text.
Ciò a cui non riesco a trovare una soluzione è questo:
se l'utente cerca la stringa "i promessi sposi" nel campo TITOLO, è chiaramente facile ordinare per rilevanza: l'unico campo in cui l'utente ha cercato è il TITOLO;
ma se l'utente cerca in più campi, ad esempio nel TITOLO scrive "i promessi sposi", nell'AUTORE scrive "Alessandro Manzoni", nell'EDITORE scrive "Garzanti" e così via, come faccio l'ordinamento per rilevanza? O meglio, rilevanza in base a cosa se l'utente cerca contemporaneamente in più campi? I campi citati nel mio database sono tutti campi separati nella tabella full-text.
Devo inventarmi io un ordine in cui dire al database di ordinare tipo
ORDER BY MATCH(TITOLO) AGAINST('+promessi +sposi'), MATCH(AUTORE) AGAINST('+alessandro +manzoni'), MATCH(EDITORE) AGAINST('+garzanti')
o c'è un modo più intelligente?

Rispondi quotando