基于whoosh的flask全文搜索插件flask-msearch

flask 的全文搜索插件很少,有个Flask-WhooshAlchemy,最近发现个flask-msearch,使用了下感觉不错。

安装flask-msearch

pip install flask-msearch

flask配置

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 ‘‘

Configure

MSEARCH_INDEX_NAME = ‘whoosh_index‘

# simple,whoosh

MSEARCH_BACKEND = ‘whoosh‘

# 自动生成或更新索引

MSEARCH_ENABLE = True

Usage

创建更新删除索引

如果要对已存在的数据创建索引(全部)

# 创建

search.create_index()

# 更新

search.create_index(update=True)

# 删除

search.create_index(delete=True)

如果只想要为指定的表创建索引

search.create_index(Model)

自定义analyzer

比如使用jieba的中文分词

from jieba.analyseimportChineseAnalyzer

search = Search(analyzer=ChineseAnalyzer())

项目地址:https://github.com/honmaple/flask-msearch

时间: 2024-11-10 10:37:26

基于whoosh的flask全文搜索插件flask-msearch的相关文章

Postgresql数据库安装中文全文搜索插件zhparser的问题

在PG数据库的基础上加装zhparser中文全文搜索插件,说实话,挺怕这些单独编译安装的插件的,因为安装PG数据库方法的不同,最后可能导致安装的插件各种安装不上,这里说一下我遇到的坑,系统环境是Centos7, yum安装的PG9.6. 1.INSTALL 关于安装方法,可以直接到上面看https://github.com/amutu/zhparser 2.make的时候缺少pgxs.mk [[email protected] zhparser]# PG_CONFIG=/usr/pgsql-9.

Flask 教程 第十六章:全文搜索

本文翻译自The Flask Mega-Tutorial Part XVI: Full-Text Search 这是Flask Mega-Tutorial系列的第十六部分,我将在其中为Microblog添加全文搜索功能. 本章的目标是为Microblog实现搜索功能,以便用户可以使用自然语言查找有趣的用户动态内容.许多不同类型的网站,都可以使用Google,Bing等搜索引擎来索引所有内容,并通过其搜索API提供搜索结果. 这这方法适用于静态页面较多的的大部分网站,比如论坛. 但在我的应用中,基

Flask学习之十 全文搜索

英文博客地址:blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-x-full-text-search 中文翻译地址:http://www.pythondoc.com/flask-mega-tutorial/textsearch.html 开源中国社区:http://www.oschina.net/translate/the-flask-mega-tutorial-part-x-full-text-search 备注:之前的英文博客

Flask之旅《Flask Web开发:基于Python的Web应用开发实战》学习笔记

<Flask Web开发:基于Python的Web应用开发实战> 点击上方的"目录"快速到达哦! 虽然简单的网站(Flask+Python+SAE)已经上线,但只是入门.开发大型网站,系统地学习一遍还是有必要的. 1 虚拟环境 2016-6-8 书上介绍了 virtualenv,每个venv都会拷贝一份packages到项目 /venv目录. virtualenv venv venv\Scripts\activate.bat (venv) $ pip freeze >

记一次企业级爬虫系统升级改造(五):基于JieBaNet+Lucene.Net实现全文搜索

实现效果: 上一篇文章有附全文搜索结果的设计图,下面截一张开发完成上线后的实图: 基本风格是模仿的百度搜索结果,绿色的分页略显小清新. 目前已采集并创建索引的文章约3W多篇,索引文件不算太大,查询速度非常棒. 刀不磨要生锈,人不学要落后.每天都要学一些新东西. 基本技术介绍: 还记得上一次做全文搜索是在2013年,主要核心设计与代码均是当时的架构师写的,自己只能算是全程参与. 当时使用的是经典搭配:盘古分词+Lucene.net. 前几篇文章有说到,盘古分词已经很多年不更新了,我在Support

Apache Solr采用Java开发、基于Lucene的全文搜索服务器

http://docs.spring.io/spring-data/solr/ 首先介绍一下solr: Apache Solr (读音: SOLer) 是一个开源.高性能.采用Java开发.基于Lucene的全文搜索服务器,文档通过Http利用XML加到一个搜索集合中,查询该集合也是通过 http收到一个XML/JSON响应来实现.Solr 中存储的资源是以 Document 为对象进行存储的.每个文档由一系列的 Field 构成,每个 Field 表示资源的一个属性.Solr 中的每个 Doc

基于JieBaNet+Lucene.Net实现全文搜索

实现效果: 上一篇文章有附全文搜索结果的设计图,下面截一张开发完成上线后的实图: 基本风格是模仿的百度搜索结果,绿色的分页略显小清新. 目前已采集并创建索引的文章约3W多篇,索引文件不算太大,查询速度非常棒. 刀不磨要生锈,人不学要落后.每天都要学一些新东西. 基本技术介绍: 还记得上一次做全文搜索是在2013年,主要核心设计与代码均是当时的架构师写的,自己只能算是全程参与. 当时使用的是经典搭配:盘古分词+Lucene.net. 前几篇文章有说到,盘古分词已经很多年不更新了,我在Support

MySQL 全文搜索支持, mysql 5.6.4支持Innodb的全文检索和类memcache的nosql支持

背景:搞个个人博客的全文搜索得用like啥的,现在mysql版本号已经大于5.6.4了也就支持了innodb的全文搜索了,刚查了下目前版本号都到MySQL Community Server 5.6.19 了,所以,一些小的应用可以用它做全文搜索了,像sphinx和Lucene这样偏重的.需要配置或开发的,节省了成本. 这儿有一个原创的Mysql全文搜索的文章, mysql的全文搜索功能:http://blog.csdn.net/bravekingzhang/article/details/672

Mysql+Sphinx实现全文搜索

最近在做一个搜索引擎,主要是对图书方面的对象级的搜索,首先来了解下Sphinx吧. 它能够提高你的查询的速度,这个不是一般的快. Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,他可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索.         Sphinx特别为一些脚本语言设计搜索API接口,如:PHP.Python.Perl.Ruby等,同时为MySQL也设计了一个存储引擎插件. Sphinx单一索引最大可包含1亿