2.1 平台
目前的阶段,Sphinx 的 Windows 版可用于测试和调试,但不建议用于生产系统。突出的两个问题是:
(1)缺乏并发查询的支持;
(2)缺乏索引数据热切换的支持。虽然目前已经有成功的生产环境克服了这两个问题,仍然不推荐在 Windows 下运行 Sphinx 提供高强度的搜索服务。
2.2 安装步骤
(1)将你下载的 tar 包解压,并进入 sphinx 子目录:
$ tar xzvf sphinx-0.9.7.tar.gz
$ cd sphinx
(2)运行 configuration 程序:
$ ./configure
configure 程序有不少运行选项。完整的列表能够经过使用 --help 开关获得。最重要的以下:
--prefix, 定义将 Sphinx 安装到何处;
--with-mysql, 当自动检测失败时,指出在那里能找到 MySQL 头文件和库文件;
--with-pgsql, 指出在那里能找到 PostgreSQL 头文件和库文件。
(3)制做二进制程序:
$ make
(4)按照二进制程序到你选好的目录下:
$ make install
2.3 常见问题及解决
(1)若是 configure 程序没有找到 MySQL 的头文件和库文件,请试图检查 mysql-devel 这个包是否安装了。在有些系统上,默认安装包括这个包。
(2)若是 make 程序给出以下错误提示,
/bin/sh: g++: command not found
make[1]: *** [libsphinx_a-sphinx.o] Error 127
请检查 gcc-c++ 这个包是否安装了。
(3)若是你在编译时获得以下错误
sphinx.cpp:67: error: invalid application of `sizeof' to incomplete type `Private::SizeError<false>'
这意味着某些编译时的类型检查失败了,一个有可能的缘由是在你的系统上类型 off_t 的长度小于 64bit。一个快速的修复手段是,你能够修改 sphinx.h ,将在定义类型SphOffset_t处,将 off_t 替换成 DWORD,须要注意,这种改动将使你的全文索引文件不能超过 2GB。
即使这种修改有用,也请汇报这一问题,在汇报中请包括具体的错误信息以及操做系统编译器的配置状况。这样,我可能可以在下一个版本中解决这一问题。
2.4 使用入门
如下全部的例子都假设你将 sphinx 安装在目录 /usr/local/sphinx 中了。为了使用 Sphinx,你须要:
(1)建立配置文件
缺省的配置文件名为 sphinx.conf。所有的 Sphinx 提供的程序默认都在当前工做的目录下寻找该文件。
由 configure 程序生成的示例配置文件 sphinx.conf.dist 中包括所有选项的注释,复制并编辑这个文件使之适用于你的具体状况:
$ cd /usr/local/sphinx/etc
$ cp sphinx.conf.dist sphinx.conf
$ vi sphinx.conf
在示例配置文件中,将试图对 MySQL 数据库 test 中的 documents 表创建索引;
所以在这里还提供了 example.sql 用于给测试表增长数据用于测试:
$ mysql -u test < /usr/local/sphinx/etc/example.sql
(2)运行 indexer 建立你的全文索引:
$ cd /usr/local/sphinx/etc
$ /usr/local/sphinx/bin/indexer
(3)检索你新建立的索引!
你可使用 search 实用程序能够从命令行对索引进行检索:
$ cd /usr/local/sphinx/etc
$ /usr/local/sphinx/bin/search test
注意:若是要从 PHP 脚本检索索引,你须要:
1. 运行守护进程 searchd,PHP 脚本须要链接到 searchd 上进行检索 :
$ cd /usr/local/sphinx/etc
$ /usr/local/sphinx/bin/searchd
2. 运行 PHP API 附带的 test 脚本(运行以前请确认 searchd 守护进程已启动):
$ cd sphinx/api
$ php test.php test
3. 将 API 文件(位于 api/sphinxapi.php) 包含进你本身的脚本,开始编程。 php