我正在尝试将 MySQL 与 Sphinx 一起使用来提供对用户名的全文搜索,以提供用户搜索/自动完成功能。
我已经使用 sphinx php api 进行了所有设置,并设法获得了使用以下代码返回的用户 ID 列表:
include('/usr/local/lib/php/sphinxapi.php');
$sphinx = new \SphinxClient();
$mysqlconn = mysql_connect("127.0.0.1:9306") or die ("Couldn't connect to MySQL.");
$results = $sphinx->Query("John", "users");
$ids = "";
foreach($results['matches'] as $id => $data) {
if($ids > ""){
$ids .= ",";
}
$ids .= $id;
}
echo json_encode($ids);
这将返回一个逗号分隔的用户 ID 列表,在他们的名字或姓氏列中包含单词“John”
采用这种方法,我现在需要查询实际的 mysql 数据库并提取与这些 ID 匹配的用户。
我的问题是这样做最有效的方法是什么?我应该使用带有IN()
子句的简单选择还是有更好的方法?
Sphinx 也不能以更有效的方式自动为我返回这些数据吗?
提前致谢