PHP中使用Sphinx

2 篇文章 0 订阅

1.首先,我们必须安装好Sphinx并在后台运行,安装过程请参考文档 http://blog.csdn.net/huang2017/article/details/69665057

2.PHP中调用Sphinx有两种方式

方式一:使用Sphinx官方提供的api文档,引入即可include 'sphinxapi.php'; 

方式二:

(1)在这里 https://pecl.php.net/package/sphinx/1.3.2/windows 下载Sphinx模块(根据自身环境选择相应版本,可以通过phpinfo进行查看,如下图所示)


(2)下载后解压,并将解压得到的php_sphinx.dll文件放到php的ext目录下

(3)修改php.ini文件(根据上面phpinfo中的Loaded Configuration File一栏找的php.ini的位置),添加一行extension=php_sphinx.dll

(4)再次查看phpinfo,出现sphinx扩展(如下图),表示安装成功,可以使用了

3.使用,代码如下

<?php
$keyword = $_POST['keyword'];
//$keyword = '航母';
$sphinx = new SphinxClient();
$sphinx->SetServer('localhost',9312);
$sphinx->setMatchMode(SPH_MATCH_ANY);//匹配模式 SPH_MATCH_ALL:完全匹配
$result = $sphinx->query($keyword,'*');//*表示在所有索引里面进行搜索
$ids = implode(',',array_keys($result['matches']));

$conn = mysqli_connect('localhost','root','');
mysqli_query($conn,'set names utf8');
mysqli_select_db($conn,'blog');

$sql = "select * from blog_articles where id in (".$ids.")";
$rst = mysqli_query($conn,$sql);
//给匹配关键字添加样式
$opts = array(
'before_match'=>'<font style="font-weight:bold;color:#f00;">',
'after_match'=>'</font>'
);
echo '<pre>';
while($row = mysqli_fetch_assoc($rst)){
$row2 = $sphinx->buildExcerpts($row,'test1',$keyword,$opts);//test1 配置文件中的主数据源索引
print_r($row2);
}
echo '</pre>';
?>

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值