Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Ricerca full-text

  1. #1
    Utente di HTML.it L'avatar di french
    Registrato dal
    Jun 2001
    Messaggi
    117

    Ricerca full-text

    Ciao a tutti. Ho un problema in MySql con la ricerca full-text ricercando nomi di comuni Italiani, nel senso che non vengono trovati i nomi minori di 4 caratteri.
    Sto usando questo tipo di ricerca abbinandola a jquery ed ajax, che propone i risultati in una tendina che esce su un campo di testo di un form, con i risultati che si filtrano man mano che si inseriscono i caratteri.... in pratica il sistema jQuery Autocomplete plug-in.
    Questa è l'SQL che uso:

    codice:
    SELECT `comune_id`,`comune_nome`,`comune_cap` FROM `comuni` WHERE MATCH(`comune_nome`,`comune_cap`) AGAINST('xxx*' IN BOOLEAN MODE)
    In pratica, i comuni come Rho, Bra etc.. non vengono trovati.

    Qualche idea? Grazie.
    French

  2. #2
    Onestamente ho usato pochissimo la ricerca full-text.

    Comunque nella clausola AGAINST vedo l'espressione 'xxx*'

    x non dovrebbe essere un operatore, quindi gli stai dicendo "tutte le parole che iniziano per xxx"
    Quindi se un comune ha meno di 4 caratteri, non esce.

    Però non so come mai ti escono gli altri se non iniziano per xxx
    "640K dovrebbero essere sufficienti per chiunque"
    www.informaticanetworking.it

  3. #3
    Utente di HTML.it L'avatar di french
    Registrato dal
    Jun 2001
    Messaggi
    117
    ...xxx l'ho messo solo per sostituire la variabile che viene passata, e può essere di qualsiasi lunghezza.

    In ogni caso ho risolto con un trucchetto se a qualcuno può interessare.
    Ho creato un nuovo campo fittizio nella tabella `comuni`, dove, solo in corrispondenza ai nomi con due o tre caratteri (ebbene si, ci sono dei comuni italiani anche con due caratteri) ho inserito il nome seguito da delle lettere (ex. RhoZZZ).
    Nella sql poi, vado a ricercare anche tale campo, che avendo appunto più di 3 caratteri viene processato.
    Ecco qui l'esempio:
    codice:
    SELECT `comune_id`,`comune_nome`,`comune_cap` FROM `comuni` WHERE MATCH(`comune_nome`,`comune_cap`,`comune_nome_fittizio`) AGAINST('xxx*' IN BOOLEAN MODE)
    French

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.