Sphinx 是一个基于 SQL 的全文检索引擎,可以结合 MySQL、MariaDB、PostgreSQL 做全文搜索。它能提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx 特别为一些脚本语言设计了搜索 API 接口,譬如:PHP、Python、Perl、Ruby 等,同时还为 MySQL 设计了一个存储引擎插件。
Sphinx 是 SQL Phrase Index 的缩写,但不幸的是和 CMU 的 Sphinx 项目重名。
Sphinx 单一索引最大可包含 1 亿条记录,在 1 千万条记录情况下的查询速度为 0.x 秒(毫秒级)。Sphinx 创建索引的速度,譬如:创建 100 万条记录的索引只需 3~4 分钟,创建 1000 万条记录的索引可在 50 分钟内完成,而只包含最新 10 万条记录的增量索引,重建一次只需几十秒。
应用程序可通过 3 种不同接口方式与 Sphinx 搜索服务 (searchd) 通信: 1、通过原生搜索 API (SphinxAPI);
2、通过 Sphinx 自身支持的 MySQL 网络协议 (使用命名为 SphinxQL 的 SQL 精简子集);
3、通过 MySQL 服务端存储插件引擎 (SphinxSE);
当然, 还可通过使用 1、2、3 的应用程序构建 Web Service 为其他应用程序提供通信。
若想全文检索中文,可考虑使用 Coreseek。
Coreseek 是一款可供企业使用的中文全文 “检索/搜索” 软件,以 GPL2 许可协议开源发布;基于 Sphinx 研发并独立发布,专攻中文搜索和信息处理领域。适用于行业/垂直搜索、论坛/站内搜索、数据库搜索、文档/文献检索、信息检索、数据挖掘等应用场景,可以免费下载使用。商业使用(譬如:嵌入到其他程序中)需要获得商业授权。
Coreseek 的意图:为其他应用提供高速、低空间占用、高相关度结果的中文全文搜索能力。CoreSeek 可以非常容易的与 SQL 数据库和脚本语言集成。 主要特性01、高速索引 (在新款 CPU 上,近 10 MB/秒);
02、高速搜索 (在 2-4G 的文本量中,平均查询速度不到 0.1 秒);
03、高可用性 (单 CPU 上最大可支持 100 GB 的文本、100M 文档);
04、提供良好的相关性排名;
05、支持分布式搜索;
06、提供文档摘要生成;
07、提供从 MySQL 内部插件式存储引擎上搜索;
08、支持布尔、短语、及近义词查询;
09、支持每个文档多个全文检索域 (默认最大 32 个);
10、支持每个文档多属性;
11、支持断词;
12、支持单字节编码与 UTF-8 编码。
版权声明:
本文为独家原创稿件,版权归 德云社区,未经许可不得转载;否则,将追究其法律责任。
|