上一节咱们介绍了sphinx的安装,也进行了简单的测试,这一节说一下sphinx都有哪些链接方式。
上一节咱们安装的sphinx是2.2.11 最新稳定版本,但是在安装目录、usr/local/sphinx/bin当中没有search命令。不知道是不是最新的sphinx把search命令给去掉的、请大家注意一下。
安装之后最主要怎么应用在咱们的程序当中,sphinx提供两种链接方式,一是api 默认端口9312,二是SphinxQL,是Mysql的接口,默认端口9306,可以通过mysql客户端访问。
使用下面的命令
searchd -c ../etc/sphinx.conf #后面跟配置文件
执行之后
打印这些证明已经启动成功:
一共两个端口,也就是上面咱们提到的。下面的index 是启动的索引名称,使用mysql工具链接9306端口。
新打印一下咱们抓取的原始sql数据:
测试
再带查询条件查询: 查询title 包含test字段为前两条
说明mysql的方式测试已经成功。
下面测试sphinxAPI,使用nodejs,
首页在 https://github.com/lindory-project/node-sphinxapi/tree/master ,安装方式: npm install sphinxapi
文档比较详细,简单实用如下
#sphinx2.js
var SphinxClient = require ("sphinxapi"),
util = require('util'),
assert = require('assert');
var cl = new SphinxClient();
cl.SetServer('localhost', 9312);
cl.Query('重构','test1', function(err, result) {
assert.ifError(err);
console.log(util.inspect(result, false, null, true));
});
运行程序,node sphinx2.js,如下
{ error: '',
warning: '',
status: [ 0 ],
fields: [ 'title', 'content' ],
attrs:
[ [ 'group_id', 1 ],
[ 'date_added', 2 ] ],
matches:
[ { id: 3,
weight: 2,
attrs: { group_id: 2, date_added: 1427446411 } },
{ id: 4,
weight: 1,
attrs: { group_id: 2, date_added: 1427446411 } } ],
total: 2,
total_found: 2,
time: 0.004,
words:
[ { word: '重', docs: 2, hits: 2 },
{ word: '构', docs: 2, hits: 2 } ] }
可以看出和SphinxQL运行的效果一样,只不过返回的信息更多而已。