Sphinx 検索サーバーについて学習しようとしています。コマンドラインとPHPを介して動作させています。唯一の厄介な点は、テーブルにインデックスを付けると、Sphinx が主キー列を見つけることができず、その列を「無視」するという通知を返すことです。とにかく動作するので、あまり気にしませんでしたが、主キー列 q_id が未定義であるという PHP 通知を検索スクリプトから受け取っていることに気付きました。スクリプトは機能し、適切な q_ids を返しますが、通知を受け取るのは好きではありません。
主キー列を取得しようとしている場所を確認できるように、スニペットを次に示します。
$row_ids = array();
if ( ! empty($result["matches"]) ) {
foreach ( $result["matches"] as $doc => $docinfo ) {
array_push($row_ids, $docinfo['q_id']);
}
Sphinx は主キーが何であるかを認識しないことは理解していますが、それでも列にインデックスを付けることができ、検索で正しい q_id が返されるため、何かを行う必要があると考えました。どこが間違っていますか?ありがとう。