搜索用户文章的索引

时间:2014-04-26 07:37:49

标签: python search indexing flask

我正在构建一个Note Making应用程序,用户可以在其中创建笔记,添加照片,标记并与朋友分享。 我正在使用python flask框架来构建工具。

我想提供一个功能,用户可以在其中搜索他们的笔记。 我如何构建索引,是否有任何库可以快速完成?

我使用MongoDB作为后端数据库

1 个答案:

答案 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)

来源:Flask-WhooshAlchemy