l' unico algoritmo che m'e' venuto in mente e' questo:

tu hai 5 campi, metti caso ... e vuoi fare similitudini per 3 campi.

Tramite calcolo combinatorio ti trovi tutte le possibilita' di ricerca per similitudine per quei 5 campi.


piano - metri - costo

zona - metri - costo

zona - piano - metri

costo - zona - piano

metri - stanze - costo

... etc etc ...


poi per ognuna di queste possibilita', nel tuo caso e' 5*5 + 5*4 + 5*3 possibilita' ... dovresti fare una query, per ogni query dovresti ottenere i vari gruppi di militudine .... poi ti looppi tutti i gruppi e per ognuno parametrizzi il range per la selezione su stanze o metri o costo o zona o altro .... poi crei 5 sezioni ed ognuna di queste avra' lo stesso risultato ordinato per zona, costo o gli altri, fino a 5 sezioni ... ordinate per ogni sezione ... il risultato e' una valanga di dati da gestire, non e' semplice ma puoi comunque arrivare ad un buon tipo di ricerca o di suddivisione ... mi raccomando, non fare questo per ogni visita, fallo una sola volta e salvati l' array con i risultati da qualche parte, altrimenti ti va giu' il server in 2 secondi , poi rifai in crontab il tutto oppure lo esegui manualmente ad ogni cambiamento record in database .


Non e' facile, e' una cosa che richiede parecchie risorse per te e per il server, addirittura ti consiglierei di far lavorare un PC a parte che genera questo tipo di informazioni e di fare un update del database di volta in volta perche' se lo fai on-line fai un patatrack .


Per il calcolo combinatorio ho una classe fatta pochi gi0orni fa che mi ha stramaledettamente svoltato una miriade di problematiche che non risucivo ad affrontare in breve tempo, quindi sei fortunato

http://andr3a.dotgeek.org/index.php?language=2&class=58

ciao