2010-11-22 9 views
6

Voglio creare una funzione di completamento automatico per un campo di tag come in SO su App Engine ... Qualche idea su come dovrei fare il processo?Crea modulo automaticamente completato in Google App Engine

Lato server Algo? - Quale logica dovrebbe esserci per il completamento automatico?

Implementazione di App Engine? - Quale dovrebbe essere lo schema Datastore per questo?

risposta

6

La tua domanda riguarda più il javascript (lato client) di GAE (lato server).

Si dovrebbe iniziare da qualcosa come jQuery AutoComplete. Se il numero di tag è piccolo, puoi semplicemente incorporare i dati nel codice HTML, altrimenti guarda gli esempi usando le chiamate AJAX.

Se si utilizza AJAX, è necessario qualcosa sul lato server: tutto ciò che si deve fare è creare un URL che accetta una query e restituisce i dati formattati JSON. Mi piace usare Django su GAE, ha un bel serializers per questo.

+0

Ciao Paulo, ho fatto una domanda simile dato il contesto del mio codice. Se potessi dargli un'occhiata, lo apprezzerei moltissimo: http://stackoverflow.com/questions/25979567/jquery-autocomplete-with-remote-json-source-google-app-engine-python – puoyaahhh

8

Ehi. Ho fatto questa domanda qualche giorno fa. Lo schema del datastore non ha molta importanza se si dispone di un campo StringProperty su cui si desidera eseguire la ricerca. Poiché App Engine non supporta ancora la ricerca full-text, dovrai fare una ricerca "inizia con", che non è al 100%, ma è abbastanza buona per cercare i tag.

C'è una discussione su come implementare la ricerca di base sulla GAE sul blog di Google Code che è stato fatto per il Google I/O 2010. Il codice è scritto in Java, ma i principi sono gli stessi: http://googlecode.blogspot.com/2010/05/google-app-engine-basic-text-search.html

Per quanto riguarda la logica, beh, questo dipende totalmente da te. Ho visto sistemi che utilizzano le query "inizia con" su ogni tasto premuto, altri utilizzano le query LIKE. Ma i limiti di GAE non consentono query LIKE. Altre discussioni in questa discussione: Google App Engine: Is it possible to do a Gql LIKE query?

1

Appena pubblicato 2 serie di parti sull'implementazione del completamento automatico con GAE: server-side service with Python e continuation using YUI3 AutoComplete plugin.

In particolare, l'utilizzo del completamento automatico per i tag simili a SO YUI3 Il plug-in di completamento automatico offre l'opzioneche consente di definire il separatore prima di selezionare la stringa da abbinare. Così, se è impostato allo spazio poi plug partite ogni nuova parola digitata nella casella di testo:

YUI().use('autocomplete', function (Y) { 

     Y.one('body').addClass('yui3-skin-sam'); 

     // AutoComplete on search input field 
     Y.one('#search_field').plug(Y.Plugin.AutoComplete, { 
     queryDelimiter: ' ', 
     source: '/rpc.xhr?action=ac_keywords&arg0={query}' 
     }); 
}); 

L'azione ac_keywords (definito in GAE) guarda i tag lista che iniziano con stringa digitata.