Home
  • Recipes
  • Creazione INDICI per le ricerche FULL TEXT
angelo.pezzullo
pubblicato più di 3 anni fa

Creazione INDICI per le ricerche FULL TEXT

MySQL gestisce un particolare tipo di tabella di DB: le MyISAM (MySQL Indexed Sequential Access Method). Su queste tabelle è possibile effettuare ricerche di tipo FULL TEXT, la ricetta è introduttiva della tematica

Come sappiamo MySQL gestisce un particolare tipo di tabella di DB: le MyISAM (MySQL Indexed Sequential Access Method). Su queste tabelle è possibile effettuare ricerche di tipo FULL TEXT.

Bisogna precisare che la ricerca FULL TEXT è possibile solo su campi di testo, quindi CHAR, VARCHAR, TEXT ecc… Inoltre è possibile solo a condizione che sia stato creato un FULL-TEXT INDEX. L’indice full-text può essere creato al momento della creazione della tabella o anche su una tabella esistente.

Nelle tabelle MyISAM i dati vengono suddivisi in record composti da campi a lunghezza fissa; ogni record è immagazzinato in sequenza e ai record corrisponde un set di tabelle hash denominate indici e destinate a contenere i puntatori ai record; in questo modo ogni record verrà estratto senza che la ricerca avvenga in tutto l’insieme di dati.

Esistono due procedure per creare un FULL-TEXT INDEX: la prima consiste nell’inserire l’indice al momento della creazione della tabella; la seconda consiste nel modificare una tabella già creata inserendo il nuovo indice in un secondo momento.

Caso 1: definizione INDICE in fase di CREAZIONE TABELLA:

Supponiamo di creare la seguente tabella news:

 1CREATE TABLE news(
 2             id INT NOT NULL AUTO_INCREMENT,
 3             autore VARCHAR(100) NULL,
 4             titolo VARCHAR(250) NULL,
 5             descrizione TEXT NULL,
 6             data DATE NOT NULL,
 7             PRIMARY KEY(id),
 8             FULLTEXT INDEX news_full(titolo, descrizione),
 9             INDEX news_autore(autore)
10             );

Nell’esempio precedente abbiamo creato un indice full-text sui campi titolo e descrizione.

Caso 2: definizione INDICE in fase di MODIFICA della TABELLA:

Supponiamo di avere una tabella persistente news senza indici full-text sui campi titolo e descrizione:

1ALTER TABLE news
2ADD FULLTEXT full (titolo, descrizione)

L’istruzione ALTER TABLE modifica una tabella persistente mentre il comando ADD FULLTEXT crea un indice FULL TEXT con un nome arbitrario indicato sui campi che gli vengono passati come parametri.

Condividi su:

Esprimi un voto:

  • Current rating: 0.0/5
  • 1
  • 2
  • 3
  • 4
  • 5

Argomenti chiave:

Ultimi commenti Ultimi commenti

Esegui il Login oppure registrati per scrivere un commento.
Cerca nel sito...
Ultime recipes

Un utilissimo tool di shell che effettua un dettagliato e comodo report su MySQL MySQL Report un tool di shell per tenere tutto sotto controllo

Un utilissimo tool di shell che effettua un dettagliato e comodo report su MySQL


Vai alla recipe

Un utilissimo tool per sniffare il traffico Client/Server TCP/IP di MySQL MySQLSniffer sniffare il traffico TCP di MySQL

Un utilissimo tool per sniffare il traffico Client/Server TCP/IP di MySQL


Vai alla recipe

Verificare l'integrità, riparare gestire chiavi e memoria di tabelle MyISAM attraverso myisamchk riparare file MyISAM

Verificare l'integrità, riparare gestire chiavi e memoria di tabelle MyISAM attraverso il file myisamchk


Vai alla recipe

Un tool per comprimere le tabelle MyISAM fino a oltre il 50% myisampack comprimere file MyISAM

Un tool per comprimere le tabelle MyISAM fino a oltre il 50%


Vai alla recipe

mysqlshow le info di base sui database, tabelle e colonne senza utilizzare alcun mysqlshow visualizzare le informazioni sul database MySQL

mysqlshow le info di base sui database, tabelle e colonne senza utilizzare alcun client


Vai alla recipe

Utilizzando UNION / UNION ALL su campi int unsigned zerofill,
ho notato che MysqlUNION / UNION ALL su campi int unsigned zerofill. di DebUsr
Vai al tip

Utilizzo di funzioni come alias di campo tramite l'impiego di prepared statementReport con alias di campo dinamici di john_revelator
Vai al tip

Può capitare che sia necessario eseguire un dump di database in formato Comma SeparatedEsecuzione dump in formato CSV (tabelle in engine MyIsam esportate in formato CSV) di ghigomatto
Vai al tip

E' possibile eseguire le query SQL contenute in un file di testo. Questo è utileEseguire le query da un file di testo di Sante Caserio
Vai al tip

Se vogliamo fare il backup di tutti i database con mysqldump, e ne abbiamo parecchiFare il backup di tutti i database di Sante Caserio
Vai al tip

Salve,vorrei chiedervi un aiutino per una query che mi infastidisce un pò.
Ho 4 aiuto per una query! di fighterdorico Vai al topic

Salve,vorrei chiedervi un aiutino per una query che mi infastidisce un pò.
Ho 4 aiuto per una query! di fighterdorico Vai al topic

Salve,vorrei chiedervi un aiutino per una query che mi infastidisce un pò.
Ho 4 aiuto per una query! di fighterdorico Vai al topic

Salve a tutti.

Ho una tabella con lettere accentate.
Le lettere vengono visualizzate ordinamento tabelle di ditch Vai al topic

Salve a tutti.

Ho una tabella con lettere accentate.
Le lettere vengono visualizzate ordinamento tabelle di ditch Vai al topic