Kuberski - 酷伯司机

写在代码边上
posts - 23, comments - 128, trackbacks - 4, articles - 1
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

Google App Engine的全文搜索api

Posted on 2008-07-26 15:25 kuber 阅读(1880) 评论(11)  编辑 收藏
搜索是Google App Engine被广泛要求的一个特性. 其实最新的GAE SDK中已经提供了搜索API, 可能因为还没有成熟, 还没有被公开. 但是在GAE的文档中可以找到一些痕迹.

Google App Engine 的官方文档Uploading Data with Bulk Data Uploader中的示例演示了如何加入搜索功能:
首先把Entity设为Searchable:
  def HandleEntity(self, entity):
    ent = search.SearchableEntity(entity)
    return ent

接下来你就可以对此entity做Search了:
    query = search.SearchableQuery('Person')
    query.Search(keyword)
    for result in query.Run():
       self.response.out.write('%s' % result['email'])
       
可以看到, 代码引用了 google.appengine.ext.search. 下载的SDK有GAE的源码, 我们可以带代码中去看个究竟: C:\Program Files\Google\google_appengine\google\appengine\ext\search\__init__.py (这是我机器上的路径, 你安装的路径可能会不同)
\search\__init__.py中有三个类:
SearchableEntity
SearchableQuery
SearchableModel

SearchableModel是db.Model的子类要使用SearchableModel, 你的model必须从SearchableModel继承, 而不是db.Model; 你可以使用query方法search:
   query = Article.all().search("sausages cheese dogs")
App Engine Guy 在blog中说明了怎么使用SearchableModel

目前的搜索API还很简单, 只有精确匹配, 没有短语, 没有语法变化, 也不支持自己增加Stop words, 更没有文档. Google应该在接下来的releases中逐步增强这个功能, 毕竟搜索是google的强项, 不能想象gogole的web hosting平台没有搜索支持. 让我们拭目以待吧.

我的Google App Engine随笔:
Google App Engine的全文搜索api
Google App Engine 中数据库(DataStore)的限制



Tag标签: appengine,google

Feedback

#1楼    回复  引用  查看    

2008-07-23 15:19 by CoderZh      
准备玩GAE了,但是貌似我注册的时候收不到验证短信。。。。

#2楼 [楼主]   回复  引用  查看    

2008-07-23 15:24 by kuber      
@CoderZh
最近很多人中移动的号码都收不到验证短信.
我是4月份申请的, 我是中移动的号码, 虽然运营商列表中没有中移动, 但是我选了中国联通一样受到了短信.
BTW, 短信居然是腾讯科技发来的

#3楼    回复  引用    

2008-07-23 15:34 by !A.Z [未注册用户]
google search google page google app.

#4楼    回复  引用  查看    

2008-07-23 15:48 by Confach      
未公开的都找到了,速度够快

#5楼    回复  引用  查看    

2008-07-23 16:24 by Spring.Cheung      
@Confach
是啊,强劲

#6楼    回复  引用  查看    

2008-07-23 16:25 by Spring.Cheung      
--引用--------------------------------------------------
!A.Z: google search google page google app.
--------------------------------------------------------
good Google.

#7楼    回复  引用  查看    

2008-07-23 16:27 by Da Vinci      
都是腾讯发过来的

#8楼 [楼主]   回复  引用  查看    

2008-07-23 16:45 by kuber      
--引用--------------------------------------------------
Confach: 未公开的都找到了,速度够快
--------------------------------------------------------
主要是因为google在它的文档中泄漏了代码

#9楼 [楼主]   回复  引用  查看    

2008-07-23 16:48 by kuber      
--引用--------------------------------------------------
!A.Z: google search google page google app.
--------------------------------------------------------

你还漏了Google Base呢.
Google是希望大家把内容都放在它的服务器上去. 它的vision是让internet上的内容更容易被找到. 没有什么比内容都在它的bigtable更好的办法了.

#10楼    回复  引用  查看    

2008-07-23 17:20 by xjb      
好像现在收不到短信了?我用联通号码也收不到

#11楼    回复  引用  查看    

2008-07-24 09:11 by Solog      
Google没有提供Dictionary 的API吧,只有Translate的API,是这样吧,我想找词典的API.

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-08-15 14:29 编辑过
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索


相关链接: