我正在尝试了解Sphinx搜索服务器。我通过命令行和PHP工作。唯一令人烦恼的是,当我索引一个表时,Sphinx会返回一条通知,告知它无法找到主键列并“忽略”该列。无论如何它都可以工作,所以我没有付那么多心思,但现在我注意到我从我的搜索脚本中得到PHP通知,说主键列q_id是未定义的。该脚本工作并返回正确的q_ids,但我不喜欢收到通知。
这是一个代码段,因此您可以看到我尝试获取主键列的位置。
$row_ids = array();
if ( ! empty($result["matches"]) ) {
foreach ( $result["matches"] as $doc => $docinfo ) {
array_push($row_ids, $docinfo['q_id']);
}
我知道Sphinx无法识别主键是什么,但我认为它仍然可以索引列,并且它必须对它做一些事情,因为搜索返回正确的q_ids。我哪里错了?感谢。
答案 0 :(得分:1)
“q_id”是属性吗?
会像
foreach ( $result["matches"] as $doc => $docinfo ) {
array_push($row_ids, $docinfo['attrs']['q_id']);
}
你应该做一个print_r($ result);看到一切都回来了......