PHP----Sphinx使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/damys/article/details/88637884
header('Content-Type:text/html;Charset=utf-8;');
require('sphinxapi.php');    			// 包含PHP驱动文件
$sc = new SphinxClient();             	// 生成客户端
$sc->setServer('localhost', 9312);    	// 设置服务器
 
$sc->setMatchMode(SPH_MATCH_ALL);		// 默认为ALL
#匹配模式
# SPH_MATCH_ALL--------匹配所有查询词(默认)------ABC 不匹配 AB 可匹配ADBC
# SPH_MATCH_ANY--------匹配查询词中的任意一个------ABC 匹配A
# SPH_MATCH_PHRASE-----将整个查询词看做一个词组----要完全匹配
# SPH_MATCH_EXTENDED---查询看做一个sphinx的表达式 --@字段 查询==='@title abc @content bcd
		$res = $sc->query(@title 冬天 @content 冬天的雪, 'songs');
# SPH_MATCH_BOOLEAN----将查询看作一个布尔表达式----与,或,非,分组 &,or,!,()
		$res = $sc->query("手机|冬天", 'songs');
 
 
#第一参数:查询的单词
#第二参数:要查询的索引的名字
#sphinx返回的相应歌曲的id
$res = $sc->query('冬天是冬天', 'songs');
 
#取出所有的id,返回一个数组
$ids = array_keys($res['matches']);
$ids = implode(',', $ids); 			//将数组变成字符串 1,2,3,4,5,7
echo '共查询到'.$res['total_found'].'条记录,共返回'.$res['total'].'条记录,共耗时:'.$res['time'].'秒<hr />';
 
 
#根据这些查询数据库取出歌曲的信息
mysql_connect('localhost', 'root', '123456');
mysql_select_db('test');
mysql_query('SET NAMES utf8');
 
$sql = "SELECT * FROM curl_songs WHERE id IN ($ids)";
$rs = mysql_query($sql);
$arr = array();
while ($row = mysql_fetch_assoc($rs)) {
	$arr[] = $row;
}
echo '<ul>';
 
foreach ($arr as $k => $v)
{
	echo '<li>';
	echo $v['title'].'<hr />'.$v['content'];
	echo '</li>';
}
echo '</ul>';

猜你喜欢

转载自blog.csdn.net/damys/article/details/88637884