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

    [DATABASE/JAVA] query per ricerca parole chiave

    Ciao,
    sapreste consigliarmi un metodo efficace per interrogare un db access "alla maniera di un motore di ricerca"?

    Ho un campo 'keywords' che contiene le parole chiave, separate da virgola, relative ai vari record.

    Vorrei effettuare una ricerca a partire dalla richiesta fatta dall'utente. Ad esempio:
    Richiesta utente: BANANE ROYAL 25
    Campo keywords db: BANANE,ROYAL,GIALLE,35

    Allora...io ho impostato così:
    1) acquisisco la stringa di ricerca dell'utente.
    2) eseguo una select prelevando il campo 'keywords' e il 'codice' di riga.
    3) eseguo lo "split" del campo keywords e comincio una serie di cicli che mi controllano il matching tra le varie parole.

    Il risultato è una ricerca pressochè inutile, dato che l'utente deve scrivere precisamente uguale alle varie parole chiave del campo 'keywords'. Per capirci...se scrive BANANES la ricerca non dà alcun risultato!

    Sò che dovrebbe esistere una query per fare tutto ciò ma non ricordo bene la sintassi...qualcosa come
    codice:
    SELECT keywords FROM prodotti WHERE keywords = '* parolachiave *'
    ...ma potrei sbagliarmi!!

    Suggerimenti?
    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698

    Re: [DATABASE/JAVA] query per ricerca parole chiave

    Originariamente inviato da nrocco
    Sò che dovrebbe esistere una query per fare tutto ciò ma non ricordo bene la sintassi...qualcosa come
    codice:
    SELECT keywords FROM prodotti WHERE keywords = '* parolachiave *'
    ...ma potrei sbagliarmi!!

    Suggerimenti?
    Grazie
    La sintassi puo dipendere dal db che usi, ma intanto devi usare LIKE e non l'uguaglianza

    SELECT keywords FROM prodotti WHERE keywords LIKE '* parolachiave *'

  3. #3
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    la sintassi corretta è questa
    SELECT * FROM prodotti
    WHERE keywords LIKE '%parolachiave1%'
    OR keywords LIKE '%parolachiave2%'
    OR keywords LIKE '%parolachiave3%'
    in questo modo tutto il lavoro lo fa il database e non prima il database e poi pure il server (questo lo fa con il codice che hai scritto)

  4. #4
    Grazie mille funziona alla grande!!!!

    Avevo trovato anch'io il LIKE ma mettevo la parola tra * * e non funzionava.

    Ancora grazie!

    Ciao

  5. #5
    Se il database fosse MySql la query funziona comunque? O bisogna cambiare qualcosa...forse * al posto di % ?

    Grazie

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.