flask入门和进阶十(实现全文搜索)已解决

参考:

在flask框架中实现中文全文搜索:https://www.fashici.com/tech/688.html

Flask-WhooshAlchemy, Whoosh Flask Sqlalchemy的索引功能:https://hant.helplib.com/GitHub/article_140877

flask入门的教程-全文搜索 Full Text Search  https://blog.csdn.net/yumingbuzhongyao/article/details/25087699

主要参考:https://blog.csdn.net/c_donald/article/details/76383088


flask实现博客全文搜索遇到许多问题,首先是Flask-WhooshAlchemy对python3版本的不兼容

然后就用Flask-WhooshAlchemyPlus,用pip 安装pip install Flask-WhooshAlchemyPlus运行是会出现init_app函数不存在。所以去github下载了原始模块安装

下面是可以实现的操作流程:

1,去https://github.com/Revolution1/Flask-WhooshAlchemyPlus 下载flask-whooshalchemyplus源码git克隆地址(https://github.com/Revolution1/Flask-WhooshAlchemyPlus.git)

flask入门和进阶十(实现全文搜索)已解决_第1张图片

2,引入和初始化在/app/__init__.py目录下,我的项目目录如下

flask入门和进阶十(实现全文搜索)已解决_第2张图片

__init__.py代码如下:

flask入门和进阶十(实现全文搜索)已解决_第3张图片

3,对app/models.py  数据库模型层进行修改,代码如下

flask入门和进阶十(实现全文搜索)已解决_第4张图片

注解:将 __searchable__ 字段添加到模型中,该模型指定要索引的字段

如果需要使用本地自定义分析器进行索引,则向模型添加 __analyzer__ 字段。

4,向数据库中添加带有索引的数据app/xxx.py

flask入门和进阶十(实现全文搜索)已解决_第5张图片

5,对app/route.py进行修改,建立索引实现搜索

flask入门和进阶十(实现全文搜索)已解决_第6张图片

注解:flask_whooshalchemyplus.index_one_model(Post)  为Post数据表生成本地索引。功能在每次访问之前都会对数据库中带有索引的条目进行本地生成

6,执行python run.py  浏览器输入127.0.0.1:5000/search,出现页面,同时本地生成文件夹

flask入门和进阶十(实现全文搜索)已解决_第7张图片

flask入门和进阶十(实现全文搜索)已解决_第8张图片

7,在搜索栏输入title得到

flask入门和进阶十(实现全文搜索)已解决_第9张图片


 

 

你可能感兴趣的:(flask)