Visualizzazione dei risultati da 1 a 1 su 1
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755

    algoritmo autocompletamento/autosuggerimento

    Salve, in un mio programma ho la necessità di implementare un algoritmo (o, se esiste, utilizzarne uno già fatto da una libreria esterna) che si occupi dell'autocompletamento/autosuggerimento durante la digitazione del testo in una JTextfield.
    Scendendo più nei dettagli, ho una lista di titoli (stringhe, ciascun titolo può essere composto anche da più parole divise da uno spazio) e in una interfaccia grafica ho una mia JTextField. Vorrei che ad ogni variazione del testo in essa (ad ogni modifica del document ad essa associato) mi venisse fornita una lista di suggerimenti dai titoli nella lista sopra citata.
    Vorrei fare, in pratica, quel che fa google quando si effettua una ricerca
    suggerimento.jpg

    Ci sono però delle complicazioni: oltre al semplice suggerimento vorrei che tale algoritmo sia in grado di far fronte anche a piccoli errori di inserimento (ad esempio digitando "rierca" l'algoritmo deve essere in grado di fornire i risultati relativi ad un inserimento "ricerca").
    Riguardo l'autocompletamento/autosuggerimento ho trovato alcune librerie già pronte sul web,tipo:

    1)SwingX (link: https://swingx.java.net/ ) , in grado autocompletare inserimenti di un JComboBox o JTextComponent relativamente a una lista di stringhe.
    Esso però non mi soddisfa per due motivi:
    -si limita all'autocompletamento con un solo risultato usando come criterio, penso, l'ordine alfabetico
    -l'inserimento, per ottenere risultati, deve essere corretto in toto (cioè se inserisco "ciao ma" lui riporterà eventuali risultati, o meglio il primo in ordine alfabetico, che inizia appunto con la stringa inserita, quindi ad esempio "ciao mamma" e magari non otterrò mai risultati se tra i titoli ce n'è uno con "ohi ciao mamma" oppure uno con ordine diverso delle parole tipo "mamma ciao"..peggio ancora se vi sono errori di inserimento

    2)GlazedList (link: http://www.glazedlists.com/ ) in grado di autocompletare/suggerire l'inserimento in un JComboBox.
    Anch'esso mostra i problemi della libreria SwingX, quindi non va bene.

    3)Lucene (link: http://lucene.apache.org/core/ ) che da quel che ho letto sembra abbastanza potente e potrebbe fare al caso mio ma purtroppo non sono riuscito a testarla.
    Seppur sul web vi siano vari esempi per il test di tale libreria con nessuno di essi son riuscito nel mio intento, non ho ben capito ancora il suo funzionamento.
    Qualcuno mi può aiutare?


    Nel frattempo, ho scritto un mio algoritmo che seppur ancora rudimentale, risolve i problemi delle prime due librerie sopra citate ma non è in grado di gestire eventuali "errori di battitura".

    Avete qualche idea da suggerirmi?
    Ultima modifica di zipangulu; 29-11-2014 a 18:27

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.