Un modo migliore per cercare il testo in due colonne

2

Ecco lo scenario. Sto creando un software di blogging personalizzato per il mio sito. Sto implementando una funzione di ricerca. Non è molto sofisticato: in pratica basta inserire la frase di ricerca e lancia questa query:

$query="SELECT * FROM 'blog' WHERE 'title' LIKE '%$q%' OR 'post' LIKE '%$q%'";

Il che significa semplicemente cercare il titolo e il corpo del post per la frase inserita. C'è un modo migliore per farlo, tenendo a mente quanto tempo ci vuole per eseguire la query su un massimo di 100 righe, ciascuna con una lunghezza di un massimo di 1500 caratteri? Ho preso in considerazione l'utilizzo di un'istruzione LIMIT per (a volte) limitare il numero di righe che la query dovrebbe esaminare. Buona idea?

    
posta D. Strout 04.07.2012 - 23:36
fonte

2 risposte

2

EHm, sono d'accordo con @ Mike Risposta, con la ricerca a testo integrale, il tuo blog sarà migliore. Perché l'utente di testo completo può digitare la seconda parola e altri.

La prima tabella di yout deve essere MyISAM con ALTER TABLE blog ENGINE=MyISAM

e aggiungi la colonna della tabella con il testo completo.

quindi cambierai la tua query in questo modo

  $query="SELECT * FROM 'blog' WHERE MATCH (title,post) AGAINST('+$q' IN BOOLEAN MODE)";

Spero di aiutarti. :)

    
risposta data 08.08.2012 - 05:39
fonte
1

A rischio di sembrare come Clippy, sembra che tu stia cercando di abilitare la ricerca di testo completa per il tuo blog. (O qualunque altra cosa il tuo esempio serva come proxy per.) Direi, lascia che il database faccia ciò per cui è ottimizzato e porti un motore di ricerca dedicato come Lucene .

    
risposta data 04.07.2012 - 23:54
fonte

Leggi altre domande sui tag