ユーザー検索/自動完了機能を提供するために、MySQLとSphinxを使用してユーザー名の全文検索を提供しようとしています。
私はsphinxphpapiを使用してすべてをセットアップし、次のコードで返されるユーザーIDのリストを取得することができました。
include('/usr/local/lib/php/sphinxapi.php');
$sphinx = new \SphinxClient();
$mysqlconn = mysql_connect("127.0.0.1:9306") or die ("Couldn't connect to MySQL.");
$results = $sphinx->Query("John", "users");
$ids = "";
foreach($results['matches'] as $id => $data) {
if($ids > ""){
$ids .= ",";
}
$ids .= $id;
}
echo json_encode($ids);
これにより、ファーストネーム列またはラストネーム列のいずれかに「John」という単語が含まれるユーザーIDのコンマ区切りリストが返されます。
このアプローチを採用すると、実際のmysqlデータベースにクエリを実行し、それらのIDに一致するユーザーを引き出す必要があります。
私の質問は、これを行うための最も効率的な方法は何でしょうか?句付きの単純なselectを使用する必要IN()
がありますか、それともはるかに優れた方法がありますか?
また、Sphinxは、より効率的な方法でこのデータを自動的に返すことはできませんか?
前もって感謝します