Ich verwende ndb.Model. Die Search API hat die folgenden Feldklassen:Google App Engine - Verwenden der Such-API Python mit Listenfeldern
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
Angenommen, ich habe ein Feld ‚Tags‘, die ein Listenfeld ist:
tags = ndb.StringProperty(repeated=True)
Wie soll ich dieses Feld behandeln mit search.Document
?
Im Moment bin ich drehen tags
Liste in einen String:
t = '|'.join(tags)
Und dann:
search.TextField(name=cls.TAGS, value=t)
Irgendwelche Vorschläge?
Ein paar Fragen. 1. Warum Textsuche für Tags, das ist für Datenspeicherabfragen geeignet. 2, Warum verketten mit '|' Warum nicht Leerzeichen –
Hey Tim. 1. Ich möchte, dass der Benutzer ein Wort in das Formularsuchfeld eingeben und damit verschiedene Felder durchsuchen kann. Angenommen, er gibt "Carpenter" ein, werden die Ergebnisse "Carpenter" als Tag (ein Job zum Beispiel) und "Carpenter" als Nachname enthalten. 2. Ich verkette mit der Pipe, weil es zwei Word-Tags wie "Professional Reader" geben könnte. –
Der Datenspeicher ist nicht geeignet, wenn Sie Verbindungen oder Überschneidungen von Tags durchführen möchten. – moraes