Uso ndb.Model. The Search API ha le seguenti classi di campo:Google App Engine: utilizzo dell'API di ricerca Python con campi elenco
TextField : plain text
HtmlField : HTML formatted text
AtomField : a string which is treated as a single token
NumberField : a numeric value (either float or integer)
DateField : a date with no time component
GeoField : a locale based on latitude and longitude
Supponiamo che io sono un campo di 'tag', che è un campo lista:
tags = ndb.StringProperty(repeated=True)
Come faccio a trattare questo campo con search.Document
?
In questo momento sto girando tags
lista in una stringa:
t = '|'.join(tags)
E poi:
search.TextField(name=cls.TAGS, value=t)
Qualche suggerimento?
Un paio di domande. 1. Perché usare la ricerca del testo per i tag, questo è adatto alle query del datastore. 2, Perché concatenare con '|' perché non lo spazio personaggio –
Hey Tim. 1. Voglio che l'utente possa inserire una parola nel campo di ricerca del modulo e usarlo per cercare tra diversi campi. Supponiamo che entri in "Carpenter", i risultati includeranno "Carpenter" come tag (un lavoro, ad esempio) e "Carpenter" come cognome. 2. Sto concatenando utilizzando il pipe perché potrebbero esserci due tag di parole come "Professional Reader". –
Il datastore non è adatto se si desidera eseguire unioni o intersezioni di tag. – moraes