logo

- Titolo: "MySQL: ricerca fulltext"
- Tratta dal sito: http://www.scriptforwebmaster.com/imparare
- Link alla notizia: http://www.scriptforwebmaster.com/imparare/view.php?id=5




Ottimizzare vuol dire velocizzare, rispamiare risorse utili e gestire al meglio i servizi.
Iniziamo questo tutorial parlando di ottimizzazione proprio perch?, a mio modesto avviso, la ricerca Fulltest in MySQL ? prorpio cos? che va definita: un'ottimizzazione nel modo di effettuare querry di ricerca in un database.

Per dovere di cronaca facciamo un quadro generale sui modoti di ricerca in un database MySQL.
Motodi di ricerca:
  • campi articolati [classica ricerca in un databse]
  • ricerca libera [con l'ausilio di "LIKE"]
  • chiavi associate [ricarca associata tra i due precedenti metodi di ricerca]
  • ricerca fulltext
  • Come scegliere un metodo di ricerca in base hai propri requisiti di progettazione dello script.
    Dovremmo dire come prefazione che questi 4 metodi di effettuare una ricerca si differenziano su molteplici caratteristiche; restringendo il campo per non dilungarci troppo in questo articolo, ? importante parlare di due delle principali caratteristiche:

    1. la notevole differenza di prestazione [tempo di elaborazione della querry] tra un metodo e l'altro
    2. la possibilit? di pesare i risultati [ovvero creare una sorta di indice dei risultati "pi? attinendi" alla ricerca effettuata]

    Tra i 4 metodi di ricerca sovra elencati, sicuramente in termini di prestazione spicca la ricerca Fulltext grazie alla quale ? possibile trovare parole singole, combinazioni di parole, frasi complete e persino un concetto ed in pi? ? l'unico metodo che pesa i risultati effettuando il conteggio di quante volte la parola/e cercata ? presente nel database in cui si effettua la ricerca.
    Per capire meglio il grande vantaggio della """funzione""" Pesa i risultati pensate a Google che per ogni ricerca effettuata vi mostra un elenco di risultati partendo da quelli pi? attinendi alla ricerca effettuata ovvero andando a pesare i risulati che vi propone.

    Altra grandissima caratteristiche della ricerca Fulltext sta nella velocit? di esecuzione della querry di ricerca:
    E' stato testato su un database di 100 MB che una ricerca Fulltext ? in media 8/10 volte pi? veloci di una ricerca libera effettuata con "LIKE"; immaginatevi da soli cosa pi? comportare questa notizia (che tendo a precisare come VERA).
    Questa incredibile maggiore velocit? di esecuzione della ricerca Fulltext ? dovuta principalmente al fatto che tale ricerca "Guarda nell'indice dei record del database" per poi eseguire la ricerca stessa; in pratica ? cose se voi voleste cercare su un stradario il paese di Fucecchio, prima andate all'indice alla "F" dove trovate le informazioni sulla pagina e sulle coordinate di dove si trova il paese di Fucecchio e poi effettuata la ricerca in base alle info acquisite nell'indice evitando di dover sfogliare tutto lo stradario prima di trovare ci? che cercate.

    Purtroppo, come in ogni cosa telematica e non, non sono tutte rose ma ci sono anche alcune piccole spine.
    La ricerca Fulltext pu? essere effettuata solo su campitesto: CHAR, VARCHAR, TEXT.

    Alcuni consigli su applicazioni particolarmente adatte ad lavorare con la ricerca Fulltest:
    - moduli news
    - guestbook
    - moduli calendari eventi


    Facciamo qualche esempio di ricerca Fulltext
    Supponiamo di effettuare una ricerca per trovare la parola esatta "italia" nella tabella "storia" nel campo "narrativa"
    mysql> SELECT * FROM storia WHERE MACTH (narritiva) AGAINST ('"italia"')

    Supponiamo di effettuare una ricerca per trovare tutte le parole che iniziano con "ita" nella tabella "storia" nel campo "narrativa"
    mysql> SELECT * FROM storia WHERE MACTH (narritiva) AGAINST ('"ita*')

    Supponiamo di effettuare una ricerca per trovare il concetto "illuministi italiani" nella tabella "storia" nel campo "narrativa"
    mysql> SELECT narrativa FROM storia WHERE MACTH ('+illuministi +italiani' IN BOOLEAN MODE)


    Grazie alla ricerca Fulltext ? possibile utilizzare il Boolian Mode
    ++ parole presenti
    -parola esclusa




    Pagina tratta dal sito ScriptForWebamster.com - Tutti i diritti riservati