基于whoosh的flask全文搜索插件flask-msearch-创新互联

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

成都创新互联主营江海网站建设的网络公司,主营网站建设方案,重庆APP开发公司,江海h5成都微信小程序搭建,江海网站营销推广欢迎江海等地区企业咨询

安装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())

项目地址:https://github.com/honmaple/flask-msearch

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


名称栏目:基于whoosh的flask全文搜索插件flask-msearch-创新互联
转载注明:http://scyanting.com/article/cohepc.html