发布于 2016-03-08 21:46:41 | 575 次阅读 | 评论: 0 | 来源: 网友投递
Sphinx 全文检索引擎
Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Python,Perl,Ruby等,同时为MySQL也设计了一个存储引擎插件。
Sphinx/MySQL 协议支持与SphinxQL应用例子,供大家学习参考
Sphinx的searchd守护程序从版本0.9.9-rc2开始支持MySQL二进制网络协议,并且能够通过标准的MySQL API访问。
例如,“mysql”命令行程序可以很好地工作。
以下是用MySQL客户端对Sphinx进行查询的例子:
$ mysql -P 9306
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 0.9.9-dev (r1734)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> SELECT * FROM test1 WHERE MATCH('test')
-> ORDER BY group_id ASC OPTION ranker=bm25;
+------+--------+----------+------------+
| id | weight | group_id | date_added |
+------+--------+----------+------------+
| 4 | 1442 | 2 | 1231721236 |
| 2 | 2421 | 123 | 1231721236 |
| 1 | 2421 | 456 | 1231721236 |
+------+--------+----------+------------+
3 rows in set (0.00 sec)
开启方法:
只需要更动一行配置文件,加入一个协议为mysql41的listener即可:
listen = localhost:9306:mysql41
sphinx还支持SQL的一个很小的子集,我们给这个子集起个绰号,叫SphinxQL。
它只支持部分语法:如:count(*)是不支持的,如需查找总结果数参考:sphinxql如何得到结果数?show meta的详细说明?不支持“&(与)操作”等。
更多内容使用请参考:http://sphinxsearch.com/docs/1.10/sphinxql-reference.html