不多有朋友写相关haystack与whoosh的文章,更没有一个较好的示例。因此我把这个完整的示例开源了,但愿有兴趣的同窗可以交流。示例网站 python
同时注意: mysql
若是使用结巴分词默认的ChineseAnanlyzer,请修改代码以下会更好: git
def ChineseAnalyzer(stoplist=STOP_WORDS,minsize=1,stemfn=stem,cachesize=50000): return ChineseTokenizer()|LowercaseFilter()|StopFilter(stoplist=stoplist,minsize=minsize)\ |StemFilter(stemfn=stemfn, ignore=None,cachesize=cachesize)使用 yaha分词请小小的修正如下代码:
#analyzer.py _cuttor = Cuttor() _cuttor.set_stage1_regex(re.compile('(\d+)|([a-zA-Z]+)', re.I|re.U)) #注释这里,把名字发现去掉。 #_cuttor.add_stage(SurnameCutting()) #_cuttor.add_stage(SuffixCutting()) class ChineseTokenizer(Tokenizer):
就是把名字发现功能与地名给去掉了,省得搜索刘德的时候没法获得刘德华的结果。固然后续优化speling功能以后,可能有更好的解决办法。 github
建议别开启spelling功能,由于这样搜索速度会降低10+倍。原来多是whoosh自己的spelling模块实现得很差。这个功能后续会想办法补上。 sql
有一些功能haystack很差实现,便直接修改whoosh_cn_backend.py,从实现角度来讲不大好,但他原本只是学习示例嘛,将就。 数据库
目前没开放爬虫代码,不少数据都从豆瓣爬过来。若是你们想要数据库数据,能够在下面留言。 app
开源地址 如下是代码的readme: 学习
A movie search using haystack and whoosh. 一个使用haystack 与whoosh的电影搜索站。使用whoosh的人不多,我用着用着就愈来愈喜欢。 网上虽然有不少对whoosh的测试,若是要看运行效果或看如何去使用whoosh,能够参考这个网站的源代码:http://www.v-find.com 这个网站仅限于本身与几个朋友使用,因此可能没多久就关了:) 测试
把whoosh_cn_backend.py放入到搜索项目 haystack/backend/ 文件夹下 对这个项目有兴趣可到个人博客:http://www.oschina.net/ 交流 优化