python 全文检索 whoosh flask_基于whoosh的flask全文搜索插件flask-msearch

flask 的全文搜索插件很少,有个Flask-WhooshAlchemy,最近发现个flask-msearch,使用了下感觉不错。

安装flask-msearch

pip install flask-msearch

flask配置

from flask_msearch import Search

...

search = Search()

search.init_app(app)

#如果出现“sqlalchemy ValueError”报错,那么修改为

#db = SQLalchemy()

#search = Search(db=db)

# 修改models.py

class Post(db.Model):

__tablename__ = 'post'

__searchable__ = ['title', 'content']       #指定要索引的字段

# 修改views.py

@app.route("/search")

def w_search():keyword = request.args.get('keyword')

results = Post.query.msearch(keyword,fields=['title'],limit=20).filter(...)

# 或者results = Post.query.filter(...).msearch(keyword,fields=['title'],limit=20).filter(...)

return ''

Configure

MSEARCH_INDEX_NAME = 'whoosh_index'

# simple,whoosh

MSEARCH_BACKEND = 'whoosh'

# 自动生成或更新索引

MSEARCH_ENABLE = True

Usage

创建更新删除索引

如果要对已存在的数据创建索引(全部)

# 创建

search.create_index()

# 更新

search.create_index(update=True)

# 删除

search.create_index(delete=True)

如果只想要为指定的表创建索引

search.create_index(Model)

自定义analyzer

比如使用jieba的中文分词

from jieba.analyseimportChineseAnalyzer

search = Search(analyzer=ChineseAnalyzer())

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值