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

    motore di ricerca nel DB

    Salve ragassuoli!

    Sto tentando di costruire un motore di ricerca interno al mio database, una cosa semplice, deve cercare in una sola tabella.

    Questa tabella contiene vari campi (ogni record è un articolo), ma l'unico campo in cui mi interessa cercare è il corpo dell'articolo.

    Nel form si scrive la parola da cercare, e tramite una query di questo tipo il motore trova gli articoli che contengono la parola cercata:
    Codice PHP:
    SELECT FROM `articoliWHERE `articoloLIKE '%$query%' 
    dove $query è ciò che ho scritto nel form.

    Se cerco MENTE, viene fuori anche praticaMENTE, giornalMENTE... io invece voglio che trovi solo la PAROLA "MENTE", sia che abbia attorno a sè spazi o punteggiatura.

    E poi vorrei anche che succedesse la stessa cosa se cercassi più parole.

    Mi aiutate ad affinare il mio motorino di ricerca? Dai sono sicuro che qualcuno tra voi ha un buon algoritmo di ricerca già fatto.

    L'ideale sarebbe avvicinarsi ai risultati di ricerca di Google, che sa usare gli operatori booleani e che riconosce gli errori di digitazione nel form (forse cercavi).
    Sono anche già riuscito a evidenziare in grassetto nel testo la parola cercata.

    L'ordinamento dei risultati non è un problema, perchè dovranno essere mostrati sempre e comunque prima gli articoli pubblicati più di recente (questo sono già riuscito a farlo).

    Allora ragassuoli, chi vuol darmi una mano?

  2. #2

    Re: motore di ricerca nel DB

    Originariamente inviato da Petro_suse91
    Salve ragassuoli!

    Sto tentando di costruire un motore di ricerca interno al mio database, una cosa semplice, deve cercare in una sola tabella.

    Questa tabella contiene vari campi (ogni record è un articolo), ma l'unico campo in cui mi interessa cercare è il corpo dell'articolo.

    Nel form si scrive la parola da cercare, e tramite una query di questo tipo il motore trova gli articoli che contengono la parola cercata:
    Codice PHP:
    SELECT FROM `articoliWHERE `articoloLIKE '%$query%' 
    dove $query è ciò che ho scritto nel form.

    Se cerco MENTE, viene fuori anche praticaMENTE, giornalMENTE... io invece voglio che trovi solo la PAROLA "MENTE", sia che abbia attorno a sè spazi o punteggiatura.

    E poi vorrei anche che succedesse la stessa cosa se cercassi più parole.

    Mi aiutate ad affinare il mio motorino di ricerca? Dai sono sicuro che qualcuno tra voi ha un buon algoritmo di ricerca già fatto.

    L'ideale sarebbe avvicinarsi ai risultati di ricerca di Google, che sa usare gli operatori booleani e che riconosce gli errori di digitazione nel form (forse cercavi).
    Sono anche già riuscito a evidenziare in grassetto nel testo la parola cercata.

    L'ordinamento dei risultati non è un problema, perchè dovranno essere mostrati sempre e comunque prima gli articoli pubblicati più di recente (questo sono già riuscito a farlo).

    Allora ragassuoli, chi vuol darmi una mano?

    mah, x ora mi viene in mente una soluzione banale, qualcosa del tipo:

    Codice PHP:
    SELECT FROM `articoliWHERE `articoloLIKE '$query'
        
    OR `articoloLIKE '% $query. %'
        
    OR `articoloLIKE '% $query; %'
        
    OR `articoloLIKE '% $query, %'
        
    OR `articoloLIKE '% $query! %'
        
    OR `articoloLIKE '% $query: %'
        
    OR `articoloLIKE '% $query? %'
    ... 

  3. #3
    cicciox80, ti ringrazio per l'interessamento, però così non va bene...
    e se uno si sbaglia, e scrive "ciao,come stai" devo raddoppiare i casi per contemplare anche la punteggiatura PRIMA della parola cercata... e poi quando c'è più di una parola come la mettiamo?

    penso che sia meglio farlo tramite regexp...

    a parte questo, dai davvero nessuno ha un buon algoritmo pronto o anche da adattare, da postare qui? Basta anche solo una idea su come costruirne uno!

    Potrebbe venirne fuori una interessante Pillola!

  4. #4

  5. #5

  6. #6

    up

    Possibile che non ci sia nessuno che mi sa aiutare con la costruzione di questo motorino di ricerca? Eddai, qualcuno di voi l'avrà anche già fatto prima di me...

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    892
    LIKE '" & $variabile & "'

    e cerca la parola esatta


  8. #8
    Originariamente inviato da franz79
    LIKE '" & $variabile & "'

    e cerca la parola esatta

    Non funziona... se faccio ECHO sulla query ottengo:
    E@D


    Mi postate un elenco degli operatory SQL?

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.