Visualizzazione dei risultati da 1 a 6 su 6

Discussione: ricerca tipo google

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    281

    ricerca tipo google

    ho un tabellone con n campi

    l'utente digita una o piu parole (come un motore di ricerca)

    come deve essere la struttura della query per cercare tutti i termini in tutti i campi ?

    Dove metto gli AND e gli OR ?

  2. #2
    Utente di HTML.it L'avatar di Umanista
    Registrato dal
    Jan 2002
    Messaggi
    1,022

    Re: ricerca tipo google

    Originariamente inviato da alspam
    ho un tabellone con n campi

    l'utente digita una o piu parole (come un motore di ricerca)

    come deve essere la struttura della query per cercare tutti i termini in tutti i campi ?

    Dove metto gli AND e gli OR ?
    Oddio, non saprei certo indicarti nemmeno sommariamente l'algoritmo usato da google, ma una vaga idea per una ricerca del sito posso dartela.

    Per prima cosa devi lavorare sull'input dell'utente: fare in modo ad esempio che se scrive "frutti di mare" tra virgolette vada a cercare proprio i testi che contengono "frutti di mare"... Se invece scrive frutti mare, devi fare in modo che trovi tutti i testi che contengano sia frutti, sia mare.

    In pratica devi fare in modo che la stringa sql si costruisca dinamicamente in base all'input dell'utente. Ovviamente sarà necessario usare i vari AND e OR... ma detto così mi rendo conto che non è di grande aiuto.

    Prova passo passo e poi, se hai dubbi o problemi, troverai nel forum qualcuno in grado di darti indicazioni più precise.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    281
    Ho provato cosi'
    arr = split(txt, " ")
    n_elementi = ubound(arr) - lbound(arr) + 1


    Set Rs1 = Server.CreateObject("ADODB.Recordset")
    str_query = " SELECT * FROM piani WHERE "

    For i = 0 To n_elementi-1

    str_query = str_query + "( [Titolo normalizzato] Like '%"&arr(i)&"%' "
    str_query = str_query + "OR [Comune] Like '%"&arr(i)&"%' "
    str_query = str_query + "OR [Provincia] Like '%"&arr(i)&"%' "
    str_query = str_query + "OR [Regione] Like '%"&arr(i)&"%' "
    str_query = str_query + "OR [Responsabilità secondaria] Like '%"&arr(i)&"%' "
    str_query = str_query + "OR [nomi di persona] Like '%"&arr(i)&"%' "
    str_query = str_query + "OR [Anno di produzione] Like '%"&arr(i)&"%' "
    str_query = str_query + "OR [Forma (Rapu)] Like '%"&arr(i)&"%' "
    str_query = str_query + "OR [norma] Like '%"&arr(i)&"%' "
    str_query = str_query + "OR [Datazione fase iter] Like '%"&arr(i)&"%' )"

    if i<n_elementi-1 then
    str_query = str_query + " AND "
    end if

    Next

  4. #4
    Utente di HTML.it L'avatar di Umanista
    Registrato dal
    Jan 2002
    Messaggi
    1,022
    beh, mi pare già un buon punto di partenza
    In questo modo trovi la corrispondenza di ogni singola parola inserita dall'utente in ogni campo del db. In alcuni casi anche questo tipo di ricerca potrebbe essere sufficiente.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    281
    In riferimento al codice che ho postato mi si critica il fatto che inserendo ad esempio: roma
    (roma seguito da spazio)
    la ricerca restituisce anche termini come romagna

    Come faccio a forzare la ricerca a solo a roma ?

  6. #6
    Utente di HTML.it L'avatar di Umanista
    Registrato dal
    Jan 2002
    Messaggi
    1,022
    Guarda anche la ricerca di questo forum. Qui ad esempio ci sono dei radiobutton con la dicitura "trova il termine esatto".
    Poi l'utente deve inserire * al termine della parola se vuole risultati con tutte le parole che iniziano con la chiave inserita.
    Insomma, le soluzioni sono veramente tante. Dovresti valutare in base alle tue esigenze.

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.