我正在构建一个Note Making应用程序,用户可以在其中创建笔记,添加照片,标记并与朋友分享。 我正在使用python flask框架来构建工具。
我想提供一个功能,用户可以在其中搜索他们的笔记。 我如何构建索引,是否有任何库可以快速完成?
我使用MongoDB作为后端数据库
答案 0 :(得分:1)
您是否尝试过使用Flask-WhooshAlchemy。
Flask-WhooshAlchemy是一个Flask扩展,它将Whoosh的文本搜索功能与SQLAlchemy的ORM集成,以便在Flask应用程序中使用。
安装强>
pip install flask_whooshalchemy
<强>快速启动强>
import flask.ext.whooshalchemy
# set the location for the whoosh index
app.config['WHOOSH_BASE'] = 'path/to/whoosh/base'
class BlogPost(db.Model):
__tablename__ = 'blogpost'
__searchable__ = ['title', 'content'] # these fields will be indexed by whoosh
id = app.db.Column(app.db.Integer, primary_key=True)
title = app.db.Column(app.db.Text)
content = app.db.Column(app.db.Text)
created = db.Column(db.DateTime, default=datetime.datetime.utcnow)
def __repr__(self):
return '{0}(title={1})'.format(self.__class__.__name__, self.title)
创建帖子
db.session.add(
BlogPost(title='My cool title', content='This is the first post.')
); db.session.commit()
文字搜索
results = BlogPost.query.whoosh_search('cool')
我们可以限制结果:
# get 2 best results:
results = BlogPost.query.whoosh_search('cool', limit=2)