使用ndb模型在Google App Engine中进行全文搜索
我用 next db 模块(ndb)做了一个谷歌应用,现在我想在这些模型的字段上实现搜索功能。我找到两个可以做到这一点的模块:1. 谷歌应用引擎自带的模块(appengine/google/ext/search),2. gae 文本搜索(http://code.google.com/p/gae-text-search/)。这两个模块都提供了可以在旧的数据库模块属性上进行搜索的功能。我想知道有没有办法在 ndb 和谷歌应用引擎 1.6.2 上实现全文搜索。同时,我还想把这些搜索查询存储到数据存储中,我该怎么做呢?我现在使用的是 Python 2.7 来开发。谢谢!
3 个回答
0
来源:https://cloud.google.com/appengine/docs/python/search/
搜索API提供了一种模型,用于对包含结构化数据的文档进行索引。你可以在索引中进行搜索,并组织和展示搜索结果。这个API支持对字符串字段进行全文匹配。文档和索引会保存在一个专门为搜索操作优化的持久存储中。搜索API可以索引任意数量的文档。
进行搜索的步骤:
index.search("rose water")
对一个对象进行索引的步骤:
from datetime import datetime
from google.appengine.api import search
my_document = search.Document(
fields=[
search.TextField(name='customer', value='Joe Jackson'),
search.HtmlField(name='comment', value='this is <em>marked up</em> text'),
search.NumberField(name='number_of_visits', value=7),
search.DateField(name='last_visit', value=datetime.now()),
search.DateField(name='birthday', value=datetime(year=1960, month=6, day=19)),
search.GeoField(name='home_location', value=search.GeoPoint(37.619, -122.37))
])
0
请查看这个链接:https://developers.google.com/appengine/docs/python/search/,里面有关于Google App Engine中搜索功能的详细信息。
1
最好的办法是等到应用引擎的全文搜索功能发布出来。现在它还在信任测试阶段,所以很快就会推出。如果你现在自己去做一个解决方案,可能几个月后还得重新做一遍。