zoukankan      html  css  js  c++  java
  • 记——flask实现全文搜索

    参考:

    flask入门和进阶十(实现全文搜索)已解决:https://blog.csdn.net/chengmo123/article/details/100552287

    一、首先安装flask-whooshalchemyplus

    https://github.com/Revolution1/Flask-WhooshAlchemyPlus 源码下载后用:python setup.py install安装

    二、项目app做初始化flask-whooshalchemyplus

    import flask_whooshalchemyplus
    
    # 初始化搜索
    flask_whooshalchemyplus.init_app(app)

    三、模型类中添加属性:

     __searchable__ :表示按什么字段进行检索

    __analyzer__ :可以添加jieba分词中的中文分词类

    class Area(BaseModel,db.Model):
        """城区模型类"""
    
        __tablename__ = "ih_area_info"
    
        # 以titile字段搜索
        __searchable__ = ['id','name']
    
        # 中文分析
        from jieba.analyse.analyzer import ChineseAnalyzer
        __analyzer__ = ChineseAnalyzer()
    
        id = db.Column(db.Integer,primary_key=True)  # 区域编号
        name = db.Column(db.String(32), nullable=False)  # 区域名字
        house = db.relationship("House", backref='area')  # 区域的房屋

    四、路由函数中使用:

    @api.route('/search',methods=["GET","POST"])
    def search():
        if request.method == "POST":
            q = str(request.form.get('q'))
            result = Area.query.whoosh_search(q).all()
            return render_template('search_back.html',results=result)
    
        flask_whooshalchemyplus.index_one_model(Area)
    
        return render_template('search.html')

    配置完后,浏览器访问,视图函数中会生成索引文件。

  • 相关阅读:
    Flask 开启跨域
    pandas to dict
    mongodb 聚合查询
    flask 获取请求参数
    CSS dppx详解
    用CSS做出漂亮的字体动画
    VMware虚拟主机安装完成后连接不上网络
    wokerman中自定义协议的使用和测试
    使用workerman写一个小的聊天室
    telnet不能使用怎么办?
  • 原文地址:https://www.cnblogs.com/zzmx0/p/13547419.html
Copyright © 2011-2022 走看看