Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
Altri Linguaggi - [SQL] Ricerca Full Text
Forum - Altri Linguaggi - [SQL] Ricerca Full Text

Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 12:15
Giovedì, 31/07/2008
Ho un problema con una query che interroga il mio database.

devo cercare tutti i record nome_file che contengono una parola.

Esempio:
  
nome_file = "Programmazione"
nome_file = "PieroTofy.it"

mettiamo caso che devo cercare "mma"
ovviamente dovrebbe esere scelto solo il primo record...

volevo farlo con la ricerca di tipo fulltext ma anche se faccio *mma* in AGAINST non mi trova niente.

Quello che volevo sapere è: si può ricercare un pezzo di parola con la fulltext oppure è obbligatorio cercare una parola intera?

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6223
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 3:33
Venerdì, 01/08/2008
Codice sorgente - presumibilmente Altri Linguaggi

  1. SELECT * FROM tabella WHERE nome_file = '%mma%'



Occhio che in questo modo non e' possibile sfruttare l'indicizzazione (verranno analizzate tutte le righe della tabella con questa select).


Il mio blog: https://piero.dev
PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 9:15
Venerdì, 01/08/2008
Grazie per la risposta ma non è quello che volevo.

Usando il tuo metodo perdo oltre all'indice anche l'attinenza dei risultati, cosa della quale non posso fare a meno...

Io volevo usare la full text per l'attinenza ma devo poter analizzare anche una parte di parola, non solo la parola intera

io avevo messo giù questa query:

SELECT *, MATCH( campo1, campo2 ) AGAINST( '*mma*' IN BOOLEAN MODE ) as attinenza FROM tabella1 WHERE MATCH( campo1, campo2 ) AGAINST( '*mma*' IN BOOLEAN MODE ) ORDER BY attinenza DESC;

ma non funziona. Funziona solo se mma è l'inizio o la fine della parola, non al centro

Ultima modifica effettuata da lorenzo il 01/08/2008 alle 9:19
PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6223
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 10:38
Mercoledì, 27/08/2008
Ma in che senso perdi l'attinenza? Non capisco...


Il mio blog: https://piero.dev
PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 11:45
Mercoledì, 27/08/2008
quando si esegue una ricerca fulltext i risultati vengono ordinati in base all'attinenza dei risultati stessi.

infatti si scrive ORDER BY attinenza dove attinenza è MATCH(...) AGAINST(...)

se non sbaglio è un indice numerico


PM Quote