基于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())

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

演示:https://forums.honmaple.org/search?keyword=%E5%A4%A7%E5%AD%A6

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容