Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    84

    Ricerca dei numeri in fulltext

    Buongiorno a tutti

    Volevo alcuni chiarimenti sulla funzionalità della ricerca fulltext di mysql, quindi il comando MATCH()...AGAINST().

    Io ho provato a fare questa query nel mio database:

    SELECT *,MATCH(codice,descri) AGAINST ('4 ruote') as attinenza FROM tabella1 WHERE MATCH(codice,descri) AGAINST ('4 ruote' IN BOOLEAN MODE) ORDER BY attinenza DESC,descri ASC

    ma sembra che del 4 se ne freghi altamente. Infatti i risultati mettono in prima linea un articolo con 6 ruote invece che 4.

    La cosa che voglio capire, oltre a questo che ho appena detto, è perchè se io faccio la query:

    SELECT *,MATCH(codice,descri) AGAINST ('4') as attinenza FROM tabella1 WHERE MATCH(codice,descri) AGAINST ('4' IN BOOLEAN MODE) ORDER BY attinenza DESC,descri ASC

    non trovo nessun risultato.

    Qualcuno sa dirmi e perchè e soprattutto se c'è un modo di cercare i numeri con il match?


    Grazie
    Sandalf

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Le ricerche fulltext di default ignorano le parole di lunghezza inferiore a 4 caratteri. Prova a modificare 4 ruote in 4444 e vedrai il record comparire.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    84
    Ora si capisce tutto...solo che c'è un problema. Questa query la uso per un sito che esegue una ricerca sugli articoli e l'utente se inserisce '4 ruote' di certo non sa che deve mettere 4444 e nemmeno io posso stare li a controllare che ogni parola immessa dall'utente sia più lunga di 4 caratteri...sennò tnt vale che divido ogni singola parola del testo della ricerca e faccio una query con il LIKE

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    84
    Bene...dopo che mi hai detto così ho fatto subito una ricerca su google e ho trovato che per risolvere il problema basta:

    La soluzione, se siete nelle condizioni di , fortunatamente c’è, e prevede 3 operazioni

    1. modificare il file di configurazione e definire il valore della variabile ft_min_word_len all’interno del file my.cfg
    codice:
    ft_min_word_len=3
    2. Riavviare il server in modo che valorizzi in modo corretto la nuova impostazione
    3. Per finire, è necessario fare il rebuild degli indici, in modo che vengano ricostruiti con tutte le informazioni corrette
    codice:
    REPAIR TABLE nometabella QUICK;
    Facile no?…basta saperlo

    Grazie nicola75ss

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da sandalf
    l'utente se inserisce '4 ruote' di certo non sa che deve mettere 4444
    Ti avevo suggerito di fare quella prova solo per capire da cosa dipendesse il mancato riscontro dei record, non certo come metodo di ricerca.

    La variabile da modificare è esattamente quella che hai indicato. Tieni presente che riducendo il numero di caratteri minimi aumentano i tempi di ricerca.

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    84
    Grazie del consiglio. Ne terrò presente

  7. #7
    Oltre la lunghezza della parola, ho letto che fulltext ignora i numeri, è corretto?

    http://forums.mysql.com/read.php?129...627#msg-302627
    http://forums.mysql.com/read.php?129...031#msg-357031
    Ciao!

  8. #8
    Originariamente inviato da fmortara
    Oltre la lunghezza della parola, ho letto che fulltext ignora i numeri, è corretto?

    http://forums.mysql.com/read.php?129...627#msg-302627
    http://forums.mysql.com/read.php?129...031#msg-357031
    Credo di no... ho testato e ho risolto.

    Solo che sotto Windows il file da modificare è my.ini e non my.cfg, dopo la riga [mysqld] di deve aggiungere la riga già indicata.

    Ovviamente va riavviato il servizio o il computer.
    Ciao!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.