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

Home ~ Php :: Operatori e ricerche FULL TEXT in MySQL :: Indice Php

Operatori e ricerche FULL TEXT in MySQL

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

Esistono due metodi per operare una ricerca FULL TEXT, uno basato sulla ricerca semplice, l'altro basato sulla ricerca logico-booleana. In entrambi i casi la procedura di ricerca si basa su determinate istruzioni SQL:

MATCH (campi) AGAINST (chiave di ricerca)
SELECT nome_campo, MATCH (campi indicizzati) 
AGAINST ('chiave di ricerca')
FROM nome_tabella
Una volta eseguita l'istruzione verrà restituito un output basato sul principio della corrispondenza, quindi tutti i record verranno discriminati sulla base di un livello di corrispondenza detto SCORE espresso in valore decimale; più alto sarà lo SCORE maggiore sarà la pertinenza del risultato, i risultati ritenuti privi di corrispondenza verranno associati ad uno SCORE pari a zero.

L'istruzione presentata non permette però di filtrare i risultati ottenuti, infatti le ricerche FULL TEXT in realtà non ricercano stringhe ma pertinenze tra chiavi di input e contenuti memorizzati; da questo punto di vista sono quindi interessanti tutti i risultati anche quelli che non presentano corrispondenze, ciò che conta è la "classifica finale".

Saranno però sufficienti alcuni accorgimenti sintattici per ovviare alla problematica descritta e ottenere output filtrati da cui sono stati rimossi i record non rilevanti ai fini della ricerca:
SELECT nome_campo, MATCH (campi_indicizzati) 
AGAINST ('chiave di ricerca')
FROM nome_tabella
WHERE MATCH (campi_indicizzati) AGAINST (‘chiave di ricerca’)

In questo caso tutti i risultati pari a zero verranno classificati come FALSE in senso logico e non saranno presenti all'interno del risultato finale.

Per "raffinare" le nostre ricerche, abbiamo a disposizione una serie di operatori che potranno essere utilizzati per operare ulteriori filtraggi e restringere gli output soltanto ai record dotati di SCORE più elavati:
  • *: consente di omettere un certo numero di caratteri all'interno della chiave di ricerca (carattere jolly).
  • ~: diminuisce lo SCORE di una determinata chiave senza però escluderla dalla ricerca (tilde).
  • ‘' ‘': consente l'introduzione di caratteri non alfanumerici.
  • (): definisce un'espressione.
  • &: congiunzione di tipo logico (AND).
  • |: operatore logico OR.
  • +: indica che una ricerca è valida solo se la chiave indicata è presente su tutti i record.
  • -: indica che una ricerca è valida solo se la chiave indicata non è presente su tutti i record.
  • < e >: diminuisce o aumenta il livello di corrispondenza di una determinata chiave.
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
Guida programmazione Java
Il corso Java per Mrwcorsi.it è una soluzione completa per chi vuole imparare a programmare in questo linguaggio;... Leggi l'articolo
Corsi online per sviluppatori
Corsi per Webmaster, Web Designer, Programmatori, Grafici e Sistemisti