0

我正在尝试了解 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。我哪里错了?谢谢。

4

1 回答 1

1

“q_id”是一个属性吗?

会是这样的

  foreach ( $result["matches"] as $doc => $docinfo ) {
       array_push($row_ids, $docinfo['attrs']['q_id']);
  } 

你应该做一个 print_r($result); 看到一切都回来了……

于 2012-09-11T22:39:47.353 回答