什么是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/products-install/install_on_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
本文出自 “坏人的博客” 博客,请务必保留此出处http://tchuairen.blog.51cto.com/3848118/1585871
原文地址:http://tchuairen.blog.51cto.com/3848118/1585871