前几天在网上找安装sphinx的资料,没有找到很全面的,不是这走不通就是那不通,今天总算整出来了,整理一下。
1. 直接在 http://www.sphinxsearch.com/downloads.html 找 到最新的 windows 版本,我这里下的是 Win32 release binaries with MySQL support ,下载后解压在 D:/sphinx 目录下;
2.在 D:/sphinx/ 下新建一个 data 目录用来存放索引文件, 一个 log 目录方日志文件,复制D:/sphinx/sphinx.conf.in 到 D:/sphinx/bin/sphinx.conf (注意修改文件 名);
3.配置在这就不多说了,网上很多,而且这一步基本都是对的
4.导入测试数据 sql 文件在 D:/sphinx/example.sql (这应该不难)
5.建立索引
D:/sphinx/bin>indexer.exe test1 ( 备注 :test1 索引名, 为 sphinx.conf 的 index test1(),关于这个,我刚开始看到的是在这运行indexer.exe -all,但是会报错,后来看到这个indexer.exe test1,运行,成功 )
6.搜索 ’test’ 试试
D:/sphinx/bin>search.exe test
显示结果如下:
7.测试中文搜索
修改 test 数据库中 documents 数据表,
UPDATE `test`.`documents` SET `title` = ‘ 测试中文 ’, `content` = ‘this is my test document number two ,应该搜的到吧 ’ WHERE `documents`.`id` = 2;
重建索引:
D:/sphinx/bin>indexer.exe test1
搜索 ’ 中文 ’ 试试:
D:/sphinx/bin>search.exe 中文
貌似没有搜到,这是因为 windows 命令行中的编码是 gbk ,当然搜不出来。我们可以用程序试试,在D:/sphinx/api 下新建一个 foo.php 的文件,注意 utf-8 编码
启动 Sphinx searchd 服务
D:/sphinx/bin>searchd.exe
备注:在这里说明下,在cmd下启动sphinx服务,我这一步没有成功,提示错误是“This program (CLI search) is for testing and debugging purposes only”,意思是仅供测试和调试用,不知是何原因,解决办法是将sphinx安装成window服务,方法是在bin目录下运行
D:\Sphinx\bin>Searchd.exe --install --Config d:/sphinx/bin/sphinx.conf
这样做还有个好处,就可以不用一定要在CMD中打开一个Searchd.exe才能在PHP中调用Sphinx。
执行 PHP 查询(访问刚才的foo.php文件即可,注意引用的sphinxapi.php的路径):
访问 http://www.test.com/sphinx/api/foo.php ( 自己配置的虚拟主机 )
页面中就会输出找到的信息了,其中一部分是:
看到了吗,它将“中文”分成2个字了,呵呵,这是因为我们还没用中文分词,它只能一个一个字的处理了,关于中文分词和其它高级配置以后再讲吧。
到此sphinx基本就可以简单运行了!
来源:https://www.cnblogs.com/phpCHAIN/p/3204985.html