我正在尝试通过主键“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);
如何通过主键获取特定记录(行)?
答案 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('');