Sphinx :全文检索引擎

更新时间:2024-09-20 18:48

Sphinx是一种Python社区编写和使用的文档生成器,也可在其他环境中使用,它是一种全文检索引擎。

简介

Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL, PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如PHP, Python, Perl, Ruby等,同时为MySQL也设计了一个存储引擎插件。此外,Sphinx是用Python编写的,它将reStructuredText文件转换为HTML网站和其他格式,如PDF、EPUB、Texinfo和man,广泛应用于Python项目的文档开发。

功能

Sphinx的主要功能包括:

- 高速索引 (在新款CPU上,近10 MB/秒);

- 高速搜索 (2-4G的文本量中平均查询速度不到0.1秒);

- 高可用性 (单CPU上最大可支持100 GB的文本,100M文档);

- 提供良好的相关性排名

- 支持分布式搜索;

- 提供文档摘要生成;

- 提供从MySQL内部的插件式存储引擎上搜索

- 支持布尔,短语, 和近义词查询;

- 支持每个文档多个全文检索域(默认最大32个);

- 支持每个文档多属性;

- 支持断词;

- 支持单字节编码与UTF-8编码。

Sphinx的reStructuredText是可扩展的,通过许多扩展来利用其可扩展性,例如用于从源代码自动生成文档、编写数学符号或突出显示源代码等。

发展历程

Sphinx于2008年3月21日发布了第一个公共版本0.1.61611。它不仅被广泛应用于Python项目的文档开发,如Bazaar、SQLAlchemy、MayaVi、SageMath、SciPyDjango和Pylons,还用于Blender用户手册和Python API文档。

2010年,Eric Holscher宣布创建Read the Docs项目,作为使软件文档维护更容易的努力的一部分,该项目可以在每次提交之后自动构建和上传Sphinx文档。

2016年,Linux内核的文档子系统在发生了变化,从4.7开发周期开始,文档开始切换到使用Sphinx。

参考资料

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}
友情链接: