App-Engine unterstützt keine Volltextsuche, also kurze Antwort ist nein.
Mit web2py können Sie ein berechnetes Feld mit einer Liste von zu suchenden Stichwörtern erstellen.
Auf GAE ist das Schlüsselwortfeld eine StringListProperty().
dann statt in Titel zu suchen, suchen Sie in Stichworten:
rows = db(db.data.keywords.contains(my_keyword.lower())).select()
Dies funktioniert auf GAE und es ist sehr effizient. Das Problem besteht nun darin, dass Sie aufgrund des GAE- "explodierenden" Indexproblems nicht dazu verwendet werden, es in komplexen Abfragen zu kombinieren. Beispiel: Sie haben N Schlüsselwörter und möchten nach zwei Schlüsselwörtern suchen:
rows = db(db.data.keywords.contains(my_keyword1.lower())&
db.data.keywords.contains(my_keyword2.lower())).select()
Ihre Indexgröße wird N^2. So haben Sie komplexere Abfragen lokal auszuführen:
query2=lambda r: my_keyword1.lower() in r.keywords
rows = db(db.data.keywords.contains(my_keyword1.lower())).select().find(query2)
All dies auch auf GAE arbeiten und nicht-on-GAE. Es ist tragbar.
Beginnt mit ist unter http://stackoverflow.com/questions/1554600/implementing-starts-with-and-ends-with-queries-with-google-app-engine; die anderen 2 sind nicht möglich. – geoffspear