Sphinx API搜索主键

时间:2013-06-25 08:23:32

标签: php api sphinx

我正在尝试通过主键“id”从sphinx中选择单行,但sphinx api不输出任何内容,而sphinx从命令行输出错误。相反,当我搜索任何其他字段时,它会起作用。

我的主键“id”比“remote_id”“title”等其他字段......

示例(不工作):

require("sphinxapi.php");

$cl = new SphinxClient;
$cl->setServer("localhost", 9312);
$cl->SetMatchMode(SPH_MATCH_EXTENDED); // or EXTENDED2
$cl->setLimits(0,10);
$query = "@id 5526";

$result = $cl->query($query);

var_dump($result);

示例(工作):

require("sphinxapi.php");

$cl = new SphinxClient;
$cl->setServer("localhost", 9312);
$cl->SetMatchMode(SPH_MATCH_EXTENDED); // or EXTENDED2
$cl->setLimits(0,10);
$query = "@remote_id 11964";

$result = $cl->query($query);

var_dump($result);

如何通过主键获取特定记录(行)?

1 个答案:

答案 0 :(得分:0)

可以使用setSelect将其别名为虚拟过滤器,然后使用setFilter

但更简单快捷,可以使用SetIDRange http://sphinxsearch.com/docs/current.html#api-func-setidrange


而不是

 $query = "@id 5526";
 $result = $cl->query($query);

将是

 $cl->setIDRange(5526,5526);
 $result = $cl->query('');