PDO的Sphinx搜索查询

时间:2014-02-25 11:59:58

标签: php mysql pdo sphinx

$dsn="mysql:host=127.0.0.1; dbname=test; charset=utf8;";
$username="member";

$password="";
$options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');

$db=new PDO($dsn, $username, $password, $options);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE);
$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

$query=$db->prepare("   
    SELECT *
    FROM test WHERE MATCH (name, location) AGAINST (:search IN BOOLEAN MODE)
    LIMIT 0, 10
");
$query->bindValue(':search', $search, PDO::PARAM_STR);  
$query->execute();
while($data=$query->fetch(PDO::FETCH_ASSOC)){

}

我有一个使用PDO进行全文搜索的mysql查询,我目前正在安装sphinx搜索。

我的问题是如何通过使用PHP PDO查询Sphinx搜索索引并从Mysql中获取数据?

1 个答案:

答案 0 :(得分:2)

您需要两个PDO连接。一个到SphinxSearch Server(sphinx会说SphinxQL,它是与mysql兼容的二进制协议,因此适用于PDO)。另一个是Mysql Server。

通过SPhinx onnections运行SphinxQL查询。获取ID列表。

将id列表插入MySQL查询 - 以获取实际的行数据。使用IN(..)过滤功能。