您好,登錄后才能下訂單哦!
flask 的全文搜索插件很少,有個Flask-WhooshAlchemy,最近發現個flask-msearch,使用了下感覺不錯。
pip install flask-msearch
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 ''
MSEARCH_INDEX_NAME = 'whoosh_index'
# simple,whoosh
MSEARCH_BACKEND = 'whoosh'
# 自動生成或更新索引
MSEARCH_ENABLE = True
如果要對已存在的數據創建索引(全部)
# 創建
search.create_index()
# 更新
search.create_index(update=True)
# 刪除
search.create_index(delete=True)
如果只想要為指定的表創建索引
search.create_index(Model)
比如使用jieba的中文分詞
from jieba.analyseimportChineseAnalyzer
search = Search(analyzer=ChineseAnalyzer())
項目地址:https://github.com/honmaple/flask-msearch
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。