Flask教程:http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-x-full-text-search
SOURCE
全文搜索使用的是Whoosh,通过Flask-WhooshAlchemy和Flask-SQLAlchemy集成在一起。
索引
Whoosh设置 config.py
WHOOSH_BASE = os.path.join(basedir, 'search.db')
在模块中设置索引
索引支只对新记录有效。而且不清除旧记录会报错。
这样就可以搜索了: Post.query.whoosh_search('second').all()
应用中实现
最大搜索数设置config.py
搜索表单
表单类:app/forms.py
因为要在所有模版中使用搜索表单,所以把它设置到g中 app/views.py
在模版中添加表单 app/templates/base.html
表单视图 app/views.py
在新视图中处理搜索结果,防止刷新原页面重复提交搜索。并且在新模版中显示搜索结果。
app/views.py
结果模版 app/templates/search_results.html
中文搜索支持
上面这些已经实现全文搜索,但是不支持中文。要用到jieba
安装
flask/bin/pip install jieba
Flask-WhooshAlchemy使用jieba分析器
然并卵,这样的实现效果还是不能完美搜索中文。