- haystack:全文检索的框架,支持whoosh、solr、Xapian、Elasticsearc四种全文检索引擎。
- whoosh:纯Python编写的全文搜索引擎,虽然性能比不上sphinx、xapian、Elasticsearc等,但是无二进制包,程序不会莫名其妙的崩溃,对于小型的站点,whoosh已经足够使用。
- jieba:一款免费的中文分词包,如果觉得不好用可以使用一些收费产品。
安装需要的包:
pip3 install django-haystack
pip3 install whoosh
pip3 install jieba
项目名/settings.py(项目配置,注册安装haystack应用,配置whoosh搜索引擎):
INSTALLED_APPS = (
# ...
'haystack', # 安装应用haystack
)
# 配置搜索引擎
HAYSTACK_CONNECTIONS = {
'default': {
# 使用whoosh引擎
# 'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine', # 对应whoost安装的路径
'ENGINE': 'haystack.backends.whoosh_cn_backend.WhooshEngine', # 使用jieba中文分词器
# 索引文件路径
'PATH': os.path.join(BASE_DIR, 'whoosh_index'), # 索引文件的保存路径
}
}
# 当添加、修改、删除数据时,自动生成索引
HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'
# 指定搜索结果每页显示的条数 (默认20)
HAYSTACK_SEARCH_RESULTS_PER_PAGE=15
项目名/urls.py(项目路由