本文将简单介绍 Python 中的一个轻量级搜索工具 Whoosh,并给出相应的使用示例代码。
# Whoosh 简介
Whoosh 由 Matt Chaput 创建,它一开始是一个为 Houdini 3D 动画软件包的在线文档提供简单、快速的搜索服务工具,之后便慢慢成为一个成熟的搜索解决工具并已开源。
Whoosh 纯由 Python 编写而成,是一个灵活的,方便的,轻量级的搜索引擎工具,现在同时支持 Python2、3,其优点如下:
-
Whoosh 纯由 Python 编写而成,但很快,只需要 Python 环境即可,不需要编译器;
-
默认使用 Okapi BM25F 排序算法,也支持其他排序算法;
-
相比于其他搜索引擎,Whoosh 会创建更小的 index 文件;
-
Whoosh 中的 index 文件编码必须是 unicode;
-
Whoosh 可以储存任意的 Python 对象。
Whoosh 的官方介绍网站为:https://whoosh.readthedocs.io/en/latest/intro.html 。相比于 ElasticSearch 或者 Solr 等成熟的搜索引擎工具,Whoosh 显得更轻便,操作更简单,可以考虑在小型的搜索项目中使用。
# Index & query
对于熟悉 ES 的人来说,搜索的两个重要的方面为 mapping 和 query,也就是索引的构建以及查询,背后是复杂的索引储存、query 解析以及排序算法等。如果你有 ES 方面的经验,那么,对于 Whoosh 是