Claudiogarau.it :: Tutorials & Scripts, PHP, Linux and more.

Home ~ Php :: Creazione di un indice FULL TEXT in una tabella MySQL :: Indice Php

Creazione di un indice FULL TEXT in una tabella MySQL

Categoria: Php Inserito il: 05-09-2006 Stampa (7038 click)

Le ricerche FULL TEXT sono disponibili in MySQL per le tabelle MyIsam (MySQL Indexed Sequential Access Method). Secondo questo metodo, i dati vengono suddivisi in record composti da campi a lunghezza fissa; ogni record immagazzinato in sequenza e ai record si riferisce un set di tabelle hash denominate indici destinate a contenere i puntatori ai record; in questo modo ogni record ver estratto senza dover cercare in tutto l'insieme di dati.

Esistono due procedure per creare un indice FULL TEXT: la prima quella di inserire l'indice al momento della creazione della tabella; la seconda quella di alterare una tabella gi creata inserendo il nuovo indice in un secondo momento.

Vediamo il primo caso, creeremo la classica tabella per un news manager completa di titolo, descrizione, autore e data delle varie news:

CREATE TABLE news(
id INT NOT NULL AUTO_INCREMENT,
autore VARCHAR(100) NULL,
titolo VARCHAR(250) NULL,
descrizione TEXT NULL,
data DATE NOT NULL,
PRIMARY KEY(id),
FULLTEXT INDEX news_full(titolo, descrizione),
INDEX news_autore(autore)
);
Come si avr modo di notare, l'indice FULL TEXT stato posto soltanto per i campi relativi al titolo e alla descrizione delle news, plausibilmente i due campi interessati all'azione di ricerca.

Naturalmente nulla ci vieta di estendere l'indice anche ad altri campi, se per esempio il nostro database destinato a conservare i record di un blog potremmo aver interesse a svolgere una ricerca anche tra i commenti degli utenti ai diversi articoli.

Se invece la nostra tabella dovesse essere preesistente e priva di indici FULL TEXT, allora potremo sempre aggiungere questi ultimi attraverso due semplici comandi SQL:
ALTER TABLE news
ADD FULLTEXT full (titolo, descrizione)
ALTER TABLE inizializza la procedura di alterazione della tabella in oggetto, mentre ADD FULLTEXT crea un indice FULL TEXT con il nome arbitrario indicato sui campi che gli vengono passati come parametri.

Attenzione: questo articolo stato concesso in esclusiva per la pubblicazione a Mrwebmaster.it; ne vietata la riproduzione,
anche parziale, senza l'esplicito consenso dell'autore e della redazione di Mrwebmaster.it.

Cerca nel sito
Per sito
Sviluppatore di applicazioni Web con competenze evolute nella progettazione delle basi di dati, autore per alcune delle pi importanti testate on line dedicate alla manualistica tecnica (HTML.it, MrWebmaster.it, Edit) e consulente per l'e-learning.
Tutte le categorie
Tutorial Random
Gerarchie di dati e sviluppo degli script PHP
Nella creazione di script PHP basati sull'interazione con il DBMS MySQL ci si trova prima o poi a dover affrontare... Leggi l'articolo
Corsi online per sviluppatori
Corsi per Webmaster, Web Designer, Programmatori, Grafici e Sistemisti