Sphinxsearch を自分のサイトに統合し、Sphinx を使用するように古いコードを書き直しています。私が得た問題は、SphinxQL の MATCH 内の特殊文字にあります。
例 : H&M を検索したい
単純な mysql を使用すると、何千ものレコードを取得できるので、データベースでその単語を含むタイトルを取得したと確信しています。
MATCH で拡張クエリ構文は必要ありません。
$q = "h&m";
$spxq = "SELECT * FROM sphinx_index WHERE MATCH(:query) LIMIT 0,10";
$stmt = $DB->prepare($spxq);
$stmt->bindValue(':query', $q, PDO::PARAM_STR);
$stmt->execute();
$res = $stmt->fetchAll(PDO::FETCH_ASSOC);
これは結果を返しません。
この後、私は $q をエスケープしようとしました:
$q = "h\&m";
まだ動作していません。二重エスケープも試しましたが、まだ動作していません。
どんな助けでも感謝します。