- Home
- Categorie
- Coding e Sistemistica
- PHP
- Motore di Ricerca Interno con Against
-
Motore di Ricerca Interno con Against
Buongiorno.
Ho un sito dove ho creato un motore di ricerca utilizzando il metodo FULLTEXT e quindi l'AGAINST e lo SCORE.
Ora ho bisogno di fare una modifica abbastanza importante: dovrei mostrare per primi quelli che hanno caricato la foto, così da avvantaggiarli e far si che chi non ha messo la foto sia tentato di farlo.
Cosa posso usare? Ho trovato l'HAVING ma non ho capito bene il funzionamento e soprattutto non so se è quello che cerco (non mi sembra).Grazie
-
Ciao portapipe,
dovresti postare la struttura del database per poter ricevere un aiuto.
-
Beh la struttura è semplice:
- Un titolo
- Un campo testo
- Un campo foto (solo link)
Tutti FULLTEXT. Quello che faccio è fare una ricerca nei cambi titolo e testo e visualizzarli in base allo score.
Quello di cui ho bisogno è fare un "semplice" controllo sui risultati e mostrare prima quelli che hanno il campo foto !='' oppure null oppure empty (hai capito
-
Basta un semplice if:
SELECT *, if(`foto` != '', 1, 0) AS ordina_per_foto FROM `misset` ORDER BY ordina_per_foto DESC
-
Il sistema che uso io è il seguente (è un esempio, lo script completo ha molti controlli e variabili e sarebbe difficile da riproporvi):
SELECT *, MATCH(title, body) AGAINST ('PHP') AS score FROM articles WHERE MATCH(title, body) AGAINST('PHP')
Con questo ho un vantaggio sul tipo di risultati che vado a ricercare, in base alla pertinenza.
E' un sistema di ricerca che necessita di una buona precisione e mi sembra che questo sia il migliore (magari mi sbaglio ma ho ricercato molto).
Qualche soluzione/consiglio?