2014-04-26 62 views
0

我正在構建一個應用程序,用戶可以在其中創建便箋,添加照片,標記並與朋友分享。 我正在使用python燒瓶框架來構建工具。搜索索引用戶文章

我想提供一個功能,其中用戶可以搜索他們的筆記。 如何構建索引,是否有任何庫可以快速完成這項工作?

我使用MongoDB的作爲後端數據庫

+0

有很多選擇。你想如何處理後端? mysql,postgresql,sqlite,csv,nosql,一些自定義文件類型? – skzryzg

+0

我正在使用MongoDB作爲後端數據庫 –

+0

我從來沒有使用它們,但你可以看看這些。他們可能派上用場。 Flask-PyMongo:https://flask-pymongo.readthedocs.org/en/latest/和MongoKit:http://flask.pocoo.org/docs/patterns/mongokit/ – skzryzg

回答

1

您是否嘗試過使用燒瓶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) 

來源:Flask-WhooshAlchemy

+0

嗨,MongoDB的這個工作作爲後端DB –

+0

Flask-WhooshAlchemy是一個Flask擴展,它將Whoosh的文本搜索功能與** SQLAlchemy **的** ORM **集成在Flask應用程序中。基於給出的描述,我會說不... –