阅读更多
BECer是纯python实现,专门为google app engine而开发的中文分词和全文搜索模块,BECer的特点是快速而且低内存占用.不必担心google app engine的cpu时间限制和内存限制.
模块包含
__init__.py -- 目录即模块
search.py -- 从App Engine SDK的search模块修改而来,增加了中文分词功能,保留原有的英文分词.
segment.py -- 中文分词切割模块,用来完成中文句子的切割.使用简单的机械分词算法
gbk.py -- 包含所有 gbk 字符集相对应的 unicode 字符.用于过滤原文,去除非中文部分.
db.zip -- 中文词库
使用方法
首先将模块解压缩至应用的根目录下,
导入BECer分词搜索模块,
import becer
from google.appengine.ext import db
创建模型
class Example(becer.Model):
content = db.TextProperty()
#定义需要分词和全文搜索的属性
@classmethod
def SearchableProperties(cls):
return [['content']]
实例化模型的类,并写入一个实体
entity = Example()
entity.content = db.Text('BECer是纯python实现,专门为google app engine而开发的中文分词和全文搜索模块,BECer的特点是快速而且低内存占用.不必担心google app engine的cpu时间限制和内存限制.'.decode('utf-8'))
entity.put()
搜索
entities = Example.all().search('中文分词'.decode('utf-8'), ['content'])
for entity in entities:
print entity.content.encode('utf8')
演示 http://sub-api.okbad.com/search
下载BECer源代码 http://www.freedodo.com/media/agxmcmVlZG9kb2Jsb2dyDQsSBU1lZGlhGKOTBAw/becer.zip?a=download
原文 http://www.freedodo.com/2011/04/25/GAE%28google-app-engine%29%E4%B8%AD%E6%96%87%E5%88%86%E8%AF%8D%E5%92%8C%E5%85%A8%E6%96%87%E6%A3%80%E7%B4%A2%E6%A8%A1%E5%9D%97-python.html