Ecco quello che voglio fare:Il modo migliore per effettuare una ricerca ponderata su più campi in mysql?
- partita una ricerca soggetto contro molteplici campi della mia tavola
- fine i risultati per importanza del settore e la rilevanza del corrispondente (in questo ordine)
Es: supponiamo di avere un blog. Quindi qualcuno cerca "php". I risultati sembrerebbero in questo modo:
- prima, le partite per il campo 'title', in ordine di rilevanza
- poi, le partite per il campo 'corpo', in ordine di rilevanza troppo
- e così on con i campi specificati ...
In realtà l'ho fatto con una classe in PHP ma utilizza un sacco di UNION (molto!) e cresce con le dimensioni dell'oggetto di ricerca. Quindi sono preoccupato per problemi di prestazioni e DOS. Qualcuno ha un indizio su questo?
mi piace questo approccio! mi puoi spiegare cosa sta succedendo negli IF prima del FROM? non sono usato con le query complesse =/ –
Fondamentalmente è una funzione IF, se la condizione (primo argomento) è vera, verrà usato il secondo argomento (il peso) altrimenti verrà usato il terzo argomento (peso 0). Il manuale ha tutti i dettagli: http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html#function_if – hakre
questo è molto bello! quindi se appare in nome (non all'inizio), descrizione e url, avrà un peso di 16? (10 + 5 + 1) –