0

我正在尝试通过主键“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);

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

4

1 回答 1

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('');
于 2013-06-25T10:16:11.833 回答