我正在尝试了解 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。我哪里错了?谢谢。
“q_id”是一个属性吗?
会是这样的
foreach ( $result["matches"] as $doc => $docinfo ) {
array_push($row_ids, $docinfo['attrs']['q_id']);
}
你应该执行 print_r($result);看到一切都回来了...