我正在構建一個應用程序,用戶可以在其中創建便箋,添加照片,標記並與朋友分享。 我正在使用python燒瓶框架來構建工具。搜索索引用戶文章
我想提供一個功能,其中用戶可以搜索他們的筆記。 如何構建索引,是否有任何庫可以快速完成這項工作?
我使用MongoDB的作爲後端數據庫
我正在構建一個應用程序,用戶可以在其中創建便箋,添加照片,標記並與朋友分享。 我正在使用python燒瓶框架來構建工具。搜索索引用戶文章
我想提供一個功能,其中用戶可以搜索他們的筆記。 如何構建索引,是否有任何庫可以快速完成這項工作?
我使用MongoDB的作爲後端數據庫
您是否嘗試過使用燒瓶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)
嗨,MongoDB的這個工作作爲後端DB –
Flask-WhooshAlchemy是一個Flask擴展,它將Whoosh的文本搜索功能與** SQLAlchemy **的** ORM **集成在Flask應用程序中。基於給出的描述,我會說不... –
有很多選擇。你想如何處理後端? mysql,postgresql,sqlite,csv,nosql,一些自定義文件類型? – skzryzg
我正在使用MongoDB作爲後端數據庫 –
我從來沒有使用它們,但你可以看看這些。他們可能派上用場。 Flask-PyMongo:https://flask-pymongo.readthedocs.org/en/latest/和MongoKit:http://flask.pocoo.org/docs/patterns/mongokit/ – skzryzg