近期领导觉得网站的搜索太慢了。让我们优化一下。经过研究。感觉之前使用的like查询效率太低。所以导致查询速度慢。从网上找到了sphinx。据说这个软件是做搜索用的。可以大大提高效率。由于之前从来没有接触过。所以只能对着文档进行研究。由于我们的网站是纯英文的。所以只需要sphinx即可。针对中文做全文索引的软件叫coreseek。最初我认为sphinx就是一个数据库。和mysql类似。只是比mysql效率高。经过研究,发现并不是那么回事。
sphinx是对数据库里的表做索引。需要查询的数据提交到sphinx进行查询。返回在mysql数据库里的id,让后拿id去mysql数据库里去查询。
1、先安装sphinxclient
#cd /usr/local/src
#wget http://sphinxsearch.com/files/sphinx-0.9.9.tar.gz
#tar xzvf sphinx-0.9.9.tar.gz
#cd sphinx-0.9.9/api/libsphinxclient
#vim sphinxclient.c
找到
void sock_close ( int sock );
改为
static void sock_close ( int sock );
#./configure --prefix=/usr/local/sphinxclient
#make
#make install
2、安装sphinx扩展
#wget http://pecl.php.net/get/sphinx-1.0.4.tgz
#tar xvzf sphinx-1.0.4.tgz
#cd sphinx-1.0.4
#/usr/local/php/bin/phpize
#./configure --with-php-config=/usr/local/php/bin/php-config --with-sphinx=/usr/local/sphinxclient
#make
#make install
修改php.ini
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
[sphinx]
extension=sphinx.so
2、测试
1、安装sphinx
请参照文档http://linux008.blog.51cto.com/2837805/622088
2、编写测试文件
#vim sphinx.php
<?php
$s = new SphinxClient;
setServer("localhost", 9312);
$s->setMatchMode(SPH_MATCH_ANY);
$s->setMaxQueryTime(3);
$result = $s->query("demo");
var_dump($result);
?>
#/usr/local/php/bin/php sphinx.php 运行结果
array(9) {
["error"]=>
string(0) ""
["warning"]=>
string(0) ""
["status"]=>
int(0)
["fields"]=>
array(5) {
[0]=>
string(6) "cat_id"
[1]=>
string(13) "provider_name"
[2]=>
string(12) "goods_number"
[3]=>
string(18) "promote_start_date"
[4]=>
string(8) "keywords"
}
["attrs"]=>
array(8) {
["goods_sn"]=>
string(1) "3"
["goods_name"]=>
string(1) "3"
["brand_id"]=>
string(1) "1"
["goods_weight"]=>
string(1) "5"
["market_price"]=>
string(1) "5"
["shop_price"]=>
string(1) "5"
["promote_price"]=>
string(1) "5"
["gid"]=>
string(10) "1073741825"
}
["total"]=>
int(0)
["total_found"]=>
int(0)
["time"]=>
float(0)
["words"]=>
array(1) {
["demo"]=>
array(2) {
["docs"]=>
int(0)
["hits"]=>
int(0)
}
}
}
分享到:
相关推荐
sphinx 安装使用及使用,文档详细的介绍了sphinx在安装使用中遇到问题及解决办法
sphinx使用rt实时索引架构设计。详解说明:http://blog.csdn.net/clevercode/article/details/52231015。
Sphinx使用手册(PHP版).pdf
PHP搜索引擎Sphinx使用教程.zip JAVA有ElasticSearch搜索引擎,我们PHP也有
coreseek SPHINX 使用说明及详细介绍
Sphinx 使用经验分享 www.51.com(我的朋友,我的家)研发中心 黄胜
Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如PHP,...
中文的库是PTM或semi类型的,在java版sphinx中无法使用。 2、Sphinx的训练指哪些内容? 在Sphinx中有语言模型、声学模型等概念,如果你不想了解这些,请参考以下内容: a1、中文每个字的标准发音已经有一个较为...
Sphinx使用1
sphinx使用实际操作步骤手册,帮助开发人员简单快速生成格式化的python项目API
sphinx系统是一个拥有悠久历史的语音识别系统,李开复自称第一个sphinx是他写的。 传说 中是第一个实用的10数字语音系统。 是由卡奈基.美隆大学研发。 sphinx3.x是基于C语言的最新版本,sphinx和 sphinx2请大家...
sphinx在linux的安装和使用方法
Sphinx3安装教程以及简单使用配置详解并附带一些容易踩坑点,希望对你有所帮助
使用sphinx生成的最新django 1.4.3文档
sphinx windows 全文检索 搜索引擎sphinx windows 全文检索 搜索引擎sphinx在windows下的安装使用.
Sphinx由俄罗斯人Andrew Aksyonoff 开发的高性能全文搜索软件包,在GPL与商业协议双许可协议下发行。 全文检索是指以文档的全部文本信息作为检索对象的一种信息检索技术。检索的对象有可能是文章的标题,也有可能是...
Sphinx中文手册 sphinx的安装与使用技巧
sphinx+php+mysqli检索测试
node-pocketsphinx, node.js的Pocketsphinx绑定 用于 Node.js的 PocketSphinx这里 MODULE 旨在通过使用PocketSphinx在便携设备上实现基本语音识别。安装Windows 安装尚不支持。要构建这里 MODULE,你需要具有以下...
sphinx4需要使用连续的声学模型,官网上下载下来的中文声学模型全是半连续的,这里提供能够在sphinx4中使用的中文声学模型