关于全文检索我知道的一些事

作者: nivaner | 来源:发表于2017-07-09 23:34 被阅读70次

引言

目前我了解到的在flask应用中全文搜索方案有3种。第一种是用sql语句做全文搜索,第二种是用flask_whooshalchemy方案,剩下的一种是使用flask_elasticsearch方案。

直接使用sql语句

使用sql中like的方法:

all_results = Post.query.filter(Post.body.like(string) .all()

这种方法在查询速度和批量更新的速度上都比较平庸。还不错。

使用flask_whooshalchemy

flask_whooshalchemy 是结合了whoosh和sqlalchmey的搜索引擎。它会对你要检索的字段都建立索引。使用起来也很方便,给WHOOSH_BASE的路径,用来存放索引。 在定义的model里添加searchable字段,哪些字段需要被建立索引。

__searchable__ = ['title', 'content']  # these fields will be indexed by whoosh

使用flask_whooshalchemy搜索速度很快,但在更新数据更新索引时很慢。

在查看flask_whooshalchemy资料时,还找到了flask_whooshalchemyplus插件。https://pypi.python.org/pypi/Flask-WhooshAlchemyPlus/0.7.2

使用flask_elasticsearch方案

是基于Elasticsearch对flask的扩展。Elasticsearch是是一个基于Apache Lucene(TM)的开源搜索引擎。它是分布式的,RESTful搜索引擎。我们只需使用RESTful api 就能简单的进行全文检索等。数据是以json格式传输的。事实上它就是面向文档对象的:存储文档,并以json的格式文档序列化。对每个文档提供索引。

关系型数据库和Elasticsearch类比:

Relational DB -> Databases -> Tables -> Rows -> Columns

Elasticsearch -> Indices  -> Types  -> Documents -> Fields

使用:

安装elasticsearch,然后将数据存储。在 flask应用中使用flask_elasticsearch,配置ELASTICSEARCH_HOST,指向该引擎。举个删除数据的例子:

es.delete(index='pair', doc_type='e2z', id=check_pair)

这个方案在查询速度和数据更新速度上都是快的。而且Elasticsearch还可以进行分布集群。使性能更好


相关文章

  • 关于全文检索我知道的一些事

    引言 目前我了解到的在flask应用中全文搜索方案有3种。第一种是用sql语句做全文搜索,第二种是用flask_w...

  • ES

    前奏 RestFul 全文检索 关于全文检索,我们需要知道哪些以下这些: 只处理文本 不处理语义(不是人工智能,检...

  • ElasticSearch-搜索查询

    URL querystring语法 全文检索: 单字段全文检索: 条件组合 单字段精确检索: 多个检索条件的组合:...

  • django中的全文检索

    全文检索 全文检索不同于特定字段的模糊查询,使用全文检索的效率更高,并且能够对于中文进行分词处理 haystack...

  • Django 2.1.7 全文检索

    全文检索 全文检索不同于特定字段的模糊查询,使用全文检索的效率更高,并且能够对于中文进行分词处理。 haystac...

  • 检索

    全文检索 全文检索不同于特定字段的模糊查询,使用全文检索的效率更高,并且能够对于中文进行分词处理。 haystac...

  • Django全文检索

    全文检索 全文检索不同于特定字段的模糊查询,使用全文检索的效率更高,并且能够对于中文进行分词处理' 安装 pip ...

  • 全文检索

    概念 从文本或者数据库中,不限定资料字段,自由地萃取出讯息的技术 执行全文检索任务的程式,一般称作搜索引擎, 将使...

  • 全文检索

    概述 Full-Text Search 是将存储于数据库中的整本书或整篇文章中的任意内容信息查找出来的技术。 倒排...

  • Django引入全文检索

    全文检索 什么是全文检索全文检索就是针对所有内容进行动态匹配搜索的概念,针对特定的关键词进行建立索引并精确匹配达到...

网友评论

    本文标题:关于全文检索我知道的一些事

    本文链接:https://www.haomeiwen.com/subject/kgfrattx.html