Come implementare Google Suggest nella propria applicazione Web (ad es. Utilizzando Python)

StackOverflow https://stackoverflow.com/questions/255700

Domanda

Nel mio sito Web, gli utenti hanno la possibilità di memorizzare collegamenti.

Durante la digitazione dell'indirizzo Internet nel campo designato vorrei visualizzare una casella di suggerimento / completamento automatico simile a Google Suggest o Chrome Omnibar.

Esempio:

L'utente sta digitando come URL:

http://www.sta

Suggerimenti che verrebbero visualizzati:

http://www.staples.com
http://www.starbucks.com
http://www.stackoverflow.com

Come posso raggiungere questo obiettivo senza reinventare la ruota? :)

È stato utile?

Soluzione

Potresti provare con http://google.com/complete/search?output=toolbar&q=keyword

e quindi analizzare il risultato XML.

Altri suggerimenti

L'ho già fatto una volta in un server Django. Ci sono due parti: lato client e lato server.

Sul lato client dovrai inviare XmlHttpRequests al server mentre l'utente sta digitando, quindi quando le informazioni tornano, visualizzale. Questa parte richiederà una discreta quantità di javascript, incluse alcune parti difficili come callback e gestori di tasti premuti.

Sul lato server dovrai gestire le richieste XmlHttp che saranno qualcosa che contiene ciò che l'utente ha digitato finora. Come un URL di

www.yoursite.com/suggest?typed=www.sta

e quindi rispondere con i suggerimenti codificati in qualche modo. (Consiglierei la codifica JSON dei suggerimenti.) Devi anche effettivamente ottenere i suggerimenti dal tuo database, questa potrebbe essere solo una semplice chiamata SQL o qualcos'altro a seconda del tuo framework.

Ma la parte sul lato server è piuttosto semplice. La parte lato client è più complicata, credo. Ho trovato questo articolo utile

Sta scrivendo cose in php, ma il lavoro sul lato client è praticamente lo stesso. In particolare potresti trovare utile il suo CSS.

Yahoo ha un buon controllo del completamento automatico .

Hanno un esempio qui .

Ovviamente questo non aiuta a ottenere i dati, ma sembra che tu abbia la tua fonte e non stai effettivamente cercando di ottenere dati da Google.

Se si desidera che il completamento automatico utilizzi la data dal proprio database, è necessario eseguire autonomamente la ricerca e aggiornare i suggerimenti utilizzando AJAX come tipo di utenti. Per la parte di ricerca, potresti voler guardare Lucene .

Quel controllo è spesso chiamato ruota di parole. MSDN ha recentemente walkthrough sulla scrittura di uno con LINQ . Ci sono due aspetti critici: esecuzione differita e valutazione lazy. L'articolo ha anche il codice sorgente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top