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

    Motore di ricerca con suggerimenti ricerca

    Qualcuno conosce una guida per costruire un motore di ricerca evoluto?
    Cioè che in caso di ricerca errata ti suggerisca delle parole alternative che potresti reputare interessanti?

    Io ho una mia idea in merito ma vorrei dei vostri pareri prima di esporla.

    Grazie
    Ciao!

  2. #2
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Io una volta ho implementato su un catalogo una ricerca, usando levenstein per errori tipografici e blind expansion per "alternative interessanti".

    Se invece dicendo "evoluto" ti riferisci a google, allora li subentrano i dizionari, le statistiche e vari algoritmi semantici.

  3. #3
    Mi servirebbe che cercando "eoma", il sistema suggerisca che potrebbe essere ricercata la parola "roma".

    Non ho certo la pretesa di fare un simil google, ma l'applicazione è quella di un motore di ricerca nel sito.
    La ricerca si farebbe con db mysql utilizzando tabelle MyISAM indicizzate.

    #bubi1, hai altri dettagli, qualche link dove poter studiare un po le tecniche indicate?
    Ciao!

  4. #4
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    supponi di avere una tabella, con i campi titolo, testo:
    titolo |testo
    -----------
    roma |bla
    venezia |bla
    milano |bla

    e devi cercare nel titolo la variabile $q = 'eoma';
    Non la trovi, e supponi si possa trattare di un errore di battitura.
    A questo punto: select ... where levenshtein('$q', titolo) <= 1. Ti restituira "roma". (suppongo sai gia' cos'e' la distanza levenshtein, se no -> google) Ovviamente puoi mettere la differenza di 2, in tal caso te la trova anche se uno scrive eama, ma aumentano le possibilita' di risultati irrilevanti o di collisioni. Bisogna bilanciare in base alle esigenze reali.

    Mi dispiace, non ho nessun link, ma come vedi e' tutto molto facile.
    Ora mi sono ricordato invece che su mysql nativamente non esiste levenshtein. Io avevo compilato una funzione in c, e installato come udf su mysql (per la velocita'). Esiste invece anche la versione funzione normale, l'ho trovata qui e qui . In questa versione non l'ho mai usata, ma potrebbe andar bene.

  5. #5
    Sei stato gentilissimo...
    avevo già googolato(c) un po' ed avevo trovato, tra le altre cose, il primo link che mi hai passato.

    Ora me lo studierò meglio, ma dato che mysql non ha nativamente la funzione, per installare quella indicata come si deve fare?
    Io non saprei da dove partire.
    Ciao!

  6. #6
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Credo basti eseguire quel codice create function .. etc

  7. #7

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.