Coreseek 是一款可供企业使用的中文全文 “检索/搜索” 软件,以 GPL2 许可协议开源发布;基于 Sphinx 研发并独立发布,专攻中文搜索和信息处理领域。适用于行业/垂直搜索、论坛/站内搜索、数据库搜索、文档/文献检索、信息检索、数据挖掘等应用场景,可以免费下载使用。商业使用(譬如:嵌入到其他程序中)需要获得商业授权。 Sphinx 是 SQL Phrase Index 的缩写,但不幸的是和 CMU 的 Sphinx 项目重名。 Coreseek 的意图:为其他应用提供高速、低空间占用、高相关度结果的中文全文搜索能力。CoreSeek 可以非常容易的与 SQL 数据库和脚本语言集成。 应用程序可通过 3 种不同接口方式与 Sphinx 搜索服务 (searchd) 通信: 2、通过 Sphinx 自身支持的 MySQL 网络协议 (使用命名为 SphinxQL 的 SQL 精简子集); 3、通过 MySQL 服务端存储插件引擎 (SphinxSE); 当然, 还可通过使用 1、2、3 的应用程序构建 Web Service 为其他应用程序提供通信。 Sphinx 发行版提供的原生搜索 API 支持 PHP、Python、Perl、Rudy 和 Java。搜索 API 非常轻量化,可在几个小时内移植到新语言上。第三方 API 接口和插件提供了对 Perl、C#、Haskell、Ruby-on-Rails 的支持,以及对其他可能的语言或者框架的支持。 从版本 1.10-beta 起,Sphinx 开始支持 2 种不同的索引后端:“磁盘(disk)” 索引后端和 “实时索引(realtime)”(RT)索引后端。磁盘索引支持在线全文索引重建,但是仅支持非文本(属性)数据的在线更新。RT 实时索引在此基础上,又增加了在线的全文索引更新。在此之前的版本仅支持磁盘索引。 使用命名为数据源的接口,数据可以被加载到磁盘索引。当前系统内置 MySQL 和 PostgreSQL 以及 ODBC 兼容(MS SQL、Oracle 等) 数据库数据源的支持,也支持从管道标准输入读取特定格式的 XML 数据。通过适当修改源代码,用户可以自行增加新的数据源驱动(譬如:对其他类型的 DBMS的原生支持)。在 Coreseek 发行版中,用户还可使用 Python 脚本作为数据源来获取任何已知世界和未知世界的数据,这极大的扩展了数据源的来源。从 1.10-beta 版本开始的 RT 实时索引,只能使用 MySQL 接口通过 SphinxQL 来操作。 01、优异的索引、搜索性能; 02、先进的索引、查询工具 (灵活且功能丰富的文本分析器、查询语言、及各种不同排序方式、等等); 03、先进的结果集分析处理 (SELECT 可以使用表达式;譬如:WHERE、ORDER BY、GROUP BY 等,对全文搜索结果集进行过滤); 04、实践证实可扩展性支持数 10 亿文档记录,TB 级别的数据,以及每秒数千次查询; 05、易于集成 SQL、XML 数据源,并可使用 SphinxAPI、SphinxQL 或者 SphinxSE 搜索接口; 06、易于通过分布式搜索进行扩展; 07、高速索引建立 (峰值性能可达到 10 ~ 15 MB/秒); 08、高性能搜索 (在 1.2 G 文本、100 万条文档上进行搜索,支持高达每秒 150~250 次查询); 09、高扩展性 (最大索引集群可超过 30 亿条文档,最繁忙时刻的查询峰值可达到每天 5 千万次); 10、提供了优秀的相关度算法,基于短语相似度和统计(BM 25)的复合 Ranking 方法; 11、支持分布式搜索功能; 12、提供文档片段(摘要以及高亮)生成功能; 13、内建支持 SphinxAPI 和 SphinxQL 搜索接口,也可作为 MySQL 的存储引擎提供搜索服务; 14、支持布尔、短语、词语相似度、等多种检索模式; 15、文档支持多个全文检索字段 (缺省配置下,最大不超过 32 个); 16、文档支持多个额外属性信息 (譬如:分组信息、时间戳、等); 17、支持查询停止词; 18、支持词形学处理; 19、支持特殊词汇处理; 21、内建支持英语、俄语、捷克语词干化处理;对法语、西班牙语、葡萄牙语、意大利语、罗马尼亚语、德国、荷兰、瑞典、挪威、丹麦、芬兰、匈牙利等语言的支持可通过第三方的 libstemmer 库扩展); 22、原生 MySQL 支持 (同时支持 MyISAM、InnoDB、NDB、Archive、等所有类型的数据表 ); 23、原生 PostgreSQL 支持; 24、原生 ODBC 兼容数据库支持 (譬如:MS SQL、Oracle、等); 版权声明: 本文为独家原创稿件,版权归 德云社区,未经许可不得转载;否则,将追究其法律责任。 |