全文检索
- 全文检索不同于特定字段的模糊查询,使用全文检索的效率更高,并且能够对于中文进行分词处理
- haystack:全文检索的框架,支持whoosh、solr、Xapian、Elasticsearc四种全文检索引擎,点击查看官方网站
- whoosh:纯Python编写的全文搜索引擎,虽然性能比不上sphinx、xapian、Elasticsearc等,但是无二进制包,程序不会莫名其妙的崩溃,对于小型的站点,whoosh已经足够使用,点击查看whoosh文档
- jieba:一款免费的中文分词包,如果觉得不好用可以使用一些收费产品,点击查看jieba文档
- 在虚拟环境中依次安装需要的包
pip install django-haystack
pip install whoosh
pip install jieba
- 修改test6/settings.py文件,安装应用haystack
INSTALLED_APPS = (
...
'haystack',
)
- 在test6/settings.py文件中配置搜索引擎
#coding=utf-8
...
HAYSTACK_CONNECTIONS = {
'default': {
#使用whoosh引擎
'ENGINE': 'haystack.backends.whoosh_cn_backend.WhooshEngine',
#索引文件路径
'PATH': os.path.join(BASE_DIR, 'whoosh_index'),
}
}
#当添加、修改、删除数据时,自动生成索引
HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'
url(r'^search/', include('haystack.urls')),