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

    Analisi Query Motore di ricerca

    Ciao a tutti.
    Apro questo post per capire qualcosa in più sulle query dei motori di ricerca.
    Secondo voi è + funzionale alla ricerca una select del tipo:

    SELECT testo FROM tabella WHERE testo LIKE '%"& Session("ParolaDaCercare") &"%'

    o

    ParolaDaCercare = Request.QueryString("cerca")
    Sost = "%' OR testo LIKE '%"
    ParolaDaCercare2 = Replace(ParolaDaCercare, " ", Sost)
    SELECT testo FROM tabella WHERE testo LIKE '%"& ParolaDaCercare2 &"%'.


    La prima è basic ma ha il difetto che inserendo una frase sarà molto difficile ottenere un risultato.
    La seconda, + complessa, tira fuori qualsiasi cosa soprattutto se nella frase ci sono articoli (lo, il, la, etc) o singole consonanti.

    Allora la mia domanda è: c'è un modo per creare una via di mezzo funzionale? E poi c'è un modo per ordinare i risultati per "Rilevanza"?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di buji
    Registrato dal
    Nov 2002
    Messaggi
    178
    A mio parere la seconda è perfino esagerata, si rischia di ottenere troppi risultati.
    Ad esempio puoi escludere le parole più corte di tot lettere

    Cosa intendi poi per rilevanza?
    Buji

  3. #3
    Come fai ad escludere le parole più corte di tot lettere? Con un controllo js sul campo? O altro?

    Per rilevanza intendo i risultati + attinenti alla parola/frase cercata.

  4. #4
    C'è un modo per escludere dalla select parole composte da meno di tre lettere.

    Forse LEN ? Ma come?

  5. #5
    splitti. scorri l'array ottenuto. giochi con len, e usi solo le parole lunghe piu' di n caratteri

  6. #6
    Originariamente inviato da optime
    splitti. scorri l'array ottenuto. giochi con len, e usi solo le parole lunghe piu' di n caratteri

    Ti seguo su tutto tranne su "scorri l'array ottenuto" che mi manca. Mi puoi delucidare ??

  7. #7
    ti guidero' passo passo. cosa ottieni con split?

  8. #8
    Quello che ho scritto sopra:

    ParolaDaCercare = Request.QueryString("cerca")
    Sost = "%' OR testo LIKE '%"
    ParolaDaCercare2 = Replace(ParolaDaCercare, " ", Sost)

    Per cui "forza catanzaro" diventerà:

    ... WHERE testo LIKE '%"& ParolaDaCercare2 &"%'

    Quindi

    ... WHERE testo LIKE '%forza%' OR testo LIKE '%catanzaro%'

  9. #9
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    ParolaDaCercare2 è un array quindi non è così.
    Devi creare la parte a destra della WHERE della query in forma dinamica man mano che scorri l'array creato, visto che non sarà formato necessarimente da due parole.

    Roby

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.