发布于 2015-01-25 02:09:58 | 343 次阅读 | 评论: 0 | 来源: PHPERZ
Sphinx 全文检索引擎
Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Python,Perl,Ruby等,同时为MySQL也设计了一个存储引擎插件。
Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Python,Perl,Ruby等,同时为MySQL也设计了一个存储引擎插件。
如果sphinx在运行中,要indexer时,需要加上--rotate参数,这样索引完就直接生效了。
原因是sphinx的searchd在启动时会创建一个 .spl 锁文件,并在关闭时会删除它。在indexer创建索引时如果发现有 .spl文件,则不会创建新索引,因为这时已经标志sphinx正在运行中,除非使用 –rotate。
->indexer完成索引
->发送SIGHUP 给searchd(同时在终端输出索引已经完成)
->searchd接到中断信号->等待所有子进程退出
->重命名 当前索引为旧索引为 .old
->重命名 .new 索引文件作为当前索引
->尝试加载当前索引文件->如果加载失败,searchd会把.old文件回滚为当前文件,并把刚建立的新索引重命名为 .new
->加载成的话:完成无缝切换
1.
关闭searchd :killall -9 searchd
重启 searchd :searchd -c ../sphinx.conf
2.
关闭:searchd --stop
启动:searchd
启动
/usr/local/sphinx/bin/searchd -c /usr/local/sphinx/etc/csft_mysql.conf
停止
/usr/local/sphinx/bin/searchd -c /usr/local/sphinx/etc/csft_mysql.conf --stop
建立索引
/usr/local/sphinx/bin/indexer -c /usr/local/sphinx/etc/csft_mysql.conf --all
重建索引
/usr/local/sphinx/bin/indexer -c /usr/local/sphinx/etc/csft_mysql.conf --all --rotate