Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [mysql] problema con comando AGAINST

    ciao,

    ho un problema con la ricerca full text e in particolare con il comando AGAINST.

    AGAINST('$dati*' IN BOOLEAN MODE)

    ho aggiunto * per la ricerca di parole non complete tipo "assoc" e mi trova le corrispondenze tipo
    "associazione" etc

    Il problema:
    se nel DB ho questi 2 titoli:
    - "ACA - Associazione Cittadini Algerini"
    - "ACABAS - Amici del Cuore"


    e come chiave di ricerca metto la parola "ACA", mi trova solo ACABAS e non anche ACA.
    Mi sapreste dare una spiegazione?

    grazie

  2. #2
    cioè, il carattere jolly * riconosce solo le lettere e i numeri oppure anche caratteri speciali, come in questo caso spazi, -, /, etc ??

    perchè non capisco il comportamento della ricerca....

  3. #3
    $dati cosa contiene? La sintassi corretta dovrebbe essere:

    ... AGAINST('+dato*' IN BOOLEAN MODE) ...
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  4. #4
    $dati contiene la stringa di ricerca con il + :


    codice:
    $searchStr = mysql_real_escape_string($_POST['keywords']);
    
    $stringa = '+'.$searchStr;
    $dati = str_replace(" ", " +",$stringa);
    ma sapresti dirmi perchè il carattere jolly riconosce solo le lettere?

  5. #5
    In realtà la stringa di ricerca "+ACA*" dovrebbe trovare tutte le parole/frasi contenenti la stringa ACA, quindi anche "ACABAS - Amici del Cuore".
    Per sicurezza prova a stampare a video la variabile $dati.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6



    da manuale:

    "...In modalità predefinita, la ricerca di testo completo funziona soltanto con le parole di 4 o più lettere..."

    http://books.google.it/books?id=75b0...0jolly&f=false


    sono fottuto?

  7. #7
    Originariamente inviato da blur



    da manuale:

    "...In modalità predefinita, la ricerca di testo completo funziona soltanto con le parole di 4 o più lettere..."

    http://books.google.it/books?id=75b0...0jolly&f=false


    sono fottuto?
    Se non hai accesso al file di configurazione di MySQL si!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  8. #8
    bene...ho accesso al file di configurazione...


    Ho editato nella cartella /etc/ il file my.cnf.
    Nella sezione [mysqld] avrei dovuto trovare il parametro ft_min_word_len che definisce la lunghezza minima delle parole da indicizzare...

    beh..non c'è!

    cosa faccio? lo creo?
    non vorrei fare casini...

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 © 2024 vBulletin Solutions, Inc. All rights reserved.