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

    PRoblema con gli ** nelle query con MATCH e AGAIN

    ciao ragazzi,
    Questa è la query che uso per il motore di ricerca per il mio sito...

    Codice PHP:
    $sql_elenco="SELECT *, MATCH(parole_chiave) AGAINST('*$_POST[chiave]*' IN BOOLEAN MODE) AS pertinenza FROM aziende WHERE MATCH(parole_chiave)
    AGAINST ('*
    $_POST[chiave]*' IN BOOLEAN MODE) ORDER BY pertinenza DESC" ;
    $result_elenco mysql_query($sql_elenco) or die (mysql_error()); 
    Il problema è che:

    Mettiamo che la parola da cercare sia Pizzeria

    Se scrivo "piz" me la trova, invece se scrivo che so.. "zeria" non trova nulla..perchè?
    IN REALTA' SONO REGISTRATO DAL 2001 PERO' MI HANNO BANNATO PER AVER SCRITTO DUE MESSAGGI NELLA SEZIONE ERRATA...CHE RICONOSCENZA!!!

  2. #2
    Due ore che controllo.. non riesco a trovare il motivo!!!!!

    Sto impazzendo
    IN REALTA' SONO REGISTRATO DAL 2001 PERO' MI HANNO BANNATO PER AVER SCRITTO DUE MESSAGGI NELLA SEZIONE ERRATA...CHE RICONOSCENZA!!!

  3. #3
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    1. Il primo match non farlo in boolean mode; e' inutile. In questa modalita' non puoi ordinare per rilevanza/pertintenza. Il valore del tuo alias "pertinenza" sara' sempre 1 - trovato, 0 - non trovato.

    2. Il carattere * non e' un jolly, e' un truncation operator. Il che significa che trova le parole che cominciano con la la sequenza di caratteri prima del *.
    Quindi, piz* funziona perche' hai delle parole che cominciano cosi'; mentre *zeria - non trovera' mai nulla, perche' non c'e' niente prima dell'asterisco.

  4. #4
    Originariamente inviato da bubi1
    1. Il primo match non farlo in boolean mode; e' inutile. In questa modalita' non puoi ordinare per rilevanza/pertintenza. Il valore del tuo alias "pertinenza" sara' sempre 1 - trovato, 0 - non trovato.

    2. Il carattere * non e' un jolly, e' un truncation operator. Il che significa che trova le parole che cominciano con la la sequenza di caratteri prima del *.
    Quindi, piz* funziona perche' hai delle parole che cominciano cosi'; mentre *zeria - non trovera' mai nulla, perche' non c'e' niente prima dell'asterisco.

    ok ho capito.. quindi per fare quello che mi serve come dovrei fare?
    Grazie per le risposte cmq...
    IN REALTA' SONO REGISTRATO DAL 2001 PERO' MI HANNO BANNATO PER AVER SCRITTO DUE MESSAGGI NELLA SEZIONE ERRATA...CHE RICONOSCENZA!!!

  5. #5
    usare like %aaaa o aaa%

  6. #6
    Originariamente inviato da Labtech
    usare like %aaaa o aaa%
    Non posso usare il like se uso Matche Again.. no?
    IN REALTA' SONO REGISTRATO DAL 2001 PERO' MI HANNO BANNATO PER AVER SCRITTO DUE MESSAGGI NELLA SEZIONE ERRATA...CHE RICONOSCENZA!!!

  7. #7
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    O usi i like e rinunci alla rilevanza, o usi la rilevanza e rinunci alla ricerca per suffisso, che io trovo abbastanza inutile nelle applicazioni reali (con poche eccezioni).

    Oppure, se hai delle esigenze particolari, usi un motore di ricerca vero, come ad esempio lucene o sphinx.

  8. #8
    Mettiamo che un locale si chiami.. superbar

    Se io cerco la parola bar è importante che trovi anche "superbar"

    Quindi direi che è abbastanza importante..
    IN REALTA' SONO REGISTRATO DAL 2001 PERO' MI HANNO BANNATO PER AVER SCRITTO DUE MESSAGGI NELLA SEZIONE ERRATA...CHE RICONOSCENZA!!!

  9. #9
    uppino
    IN REALTA' SONO REGISTRATO DAL 2001 PERO' MI HANNO BANNATO PER AVER SCRITTO DUE MESSAGGI NELLA SEZIONE ERRATA...CHE RICONOSCENZA!!!

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.