|
Inserito il: 05-09-2006   |
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.
|
|
|
Modificare il percorso di un'immagine con PHP Nella realizzazione di alcuni scripts, come per esempio le gallerie fotografiche o i gestori di banner, può essere utile dinamizzare... Leggi l'articolo
|
|
|