什么是Sphinx/Coreseek Sphinx是一个在GPLv2下分发的全文检索引擎;Coreseek是一个可供企业使用的、基于Sphinx(可独立于Sphinx原始版本运行)的中文全文检索引擎,按照GPLv2协议发行,商业使用(例如, 嵌入到其他程序中)需要联系我们以获得商业授权。 一般而言,Sphinx是一个独立的全文搜索引擎;而Coreseek是一个支持中文的全文搜索引擎,意图为其他应用提供高速、低空间占用、高结果相关度的中文全文搜索能力。Sphinx/Coreseek可以非常容易的与SQL数据库和脚本语言集成。 当前系统内置MySQL和PostgreSQL 数据库数据源的支持,也支持从管道标准输入读取入特定格式的XML数据。通过修改源代码,用户可以自行增加新的数据源(例如:其他类型的DBMS的原生支持)。在最新的版本中,用户还可以使用Python脚本作为数据源来获取任何已知世界和未知世界的数据,这极大的扩展了数据源的来源。 搜索API支持PHP、Python、Perl、Rudy和Java,并且也可以用作MySQL存储引擎。搜索API非常简单,可以在若干个小时之内移植到新的语言上。 Sphinx 是SQL PhraseIndex的缩写,但不幸的和CMU的Sphinx项目重名。 Coreseek http://www.coreseek.cn 为Sphinx在中国地区的用户提供支持服务. Sphinx http://sphinxsearch.com/
Sphinx/Coreseek 的特性
高速的建立索引(在当代CPU上,峰值性能可达到10MB/秒); 高性能的搜索(在2 – 4GB 的文本数据上,平均每次检索响应时间小于0.1秒); 可处理海量数据(目前已知可以处理超过100GB的文本数据, 在单一CPU的系统上可处理100 M 文档); 提供了优秀的相关度算法,基于短语相似度和统计(BM25)的复合Ranking方法; 支持分布式搜索; 提供文档片段(摘要以及高亮)生成功能; 可作为MySQL的存储引擎提供搜索服务; 支持布尔、短语、词语相似度等多种检索模式; 文档支持多个全文检索字段(缺省配置下,最大不超过32个); 文档支持多个额外的属性信息(例如:分组信息,时间戳等); 停止词查询; 支持单一字节编码和UTF-8编码,以及对GBK和BIG5的完善支持; 支持英语、俄语词词干化和Soundex,以便进行词形学处理; 原生的MySQL支持(同时支持MyISAM 和InnoDB ); 原生的PostgreSQL支持; 支持直接模拟为MySQL服务端运行; 支持MMSeg分词引擎,用户可自定义词典; Python数据源支持,得以获取任何已知世界和未知世界的数据.
目前,Sphinx/Coreseek的发布包包括如下软件:
indexer: 用于创建全文索引; search: 一个简单的命令行(CLI) 的测试程序,用于测试全文索引; searchd: 一个守护进程,其他软件可以通过这个守护进程进行全文检索; sphinxapi: 一系列searchd 的客户端API 库,用于流行的Web脚本开发语言(PHP, Python, Perl, Ruby, Java). spelldump: 一个简单的命令行工具,用于从 ispell 或 MySpell (OpenOffice内置绑定) 格式的字典中提取词条。当使用 wordforms 时可用这些词条对索引进行定制. indextool: 工具程序,用来转储关于索引的多项调试信息。此工具是从版本Coreseek 3.1(Sphinx 0.9.9-rc2)开始加入的。 mmseg: 工具程序和库,Coreseek用于提供中文分词和词典处理。
安装前准备环境
yum install make gcc g++ gcc-c++ libtool make mysql-devel libxml2-devel expat-devel 官网参考地址:http://www.coreseek.cn/products/ ... _bsd_linux/RHEL5-5/
来到官网http://www.coreseek.com/下载Coreseek 3.2.14稳定版,解压进入目录。 # tar xf coreseek-3.2.14.tar.gz # cd coreseek-3.2.14 配置语言支持中文 # export LANG="zh_CN.UTF-8" # export LC_ALL="zh_CN.UTF-8" # cat testpack/var/test/test.xml
安装coreseek开发的mmseg,为coreseek提供中文分词功能 # cd mmseg-3.2.14/ # ./bootstrap # ./configure --prefix=/usr/local/mmseg3 # make && make install 中文分词测试 # /usr/local/mmseg3/bin/mmseg -d /usr/local/mmseg3/etc src/t1.txt
中文/x 分/x 词/x 测试/x 中国人/x 上海市/x
Word Splite took: 0 ms. 安装coreseek # cd csft-3.2.14/ # sh buildconf.sh # ./configure --prefix=/usr/local/coreseek --without-python --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg3/lib/ --without-mysql #coreseek4.x/sphinx1.x,请将--without-mysql更改为--with-mysql # make && make install 测试是否可以正常运行 # /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/sphinx-min.conf.dist
csft-4.0版显示:ERROR: nothing to do.
coreseek中文全文检索测试
# cd testpack/
# /usr/local/coreseek/bin/indexer -c etc/csft.conf
索引全部数据
# /usr/local/coreseek/bin/indexer -c etc/csft.conf -all
索引指定数据
# /usr/local/coreseek/bin/indexer -c etc/csft.conf xml
测试搜索
# /usr/local/coreseek/bin/search -c etc/csft.conf
测试搜索关键词
# /usr/local/coreseek/bin/search -c etc/csft.conf -a hello欢迎来到北京清华大学
开启搜索服务
# /usr/local/coreseek/bin/searchd -c etc/csft.conf
# 如要已启动服务,要更新索引,请使用 /usr/local/coreseek/bin/indexer-c etc/csft.conf --all --rotate
# 如要停止搜索服务,请使用 /usr/local/coreseek/bin/searchd-c etc/csft.conf --stop
然后,请参考csft-3.2.14下api目录中的相关文件,使用PHP、Python、Ruby、Java来测试搜索服务;也可以前往< ahref="/products-install/step_by_step/">搜索服务建立三步曲,查看第三步使用PHP测试。
通过以上步骤,coreseek已经安装测试完成,可以提供正常的xml数据源索引以及提供对应的搜索服务了,下一步工作,请查看手册,准备好mysql数据信息,以及进行mysql数据源的测试,并在您的应用中调用搜索服务;mysql数据源的配置可参考testpack/etc/csft_mysql.conf文件
官方文档地址:http://www.coreseek.cn/docs/coreseek_3.2-sphinx_0.9.9.html
|