我正在将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";
仍然无法正常工作。双重逃避也仍然无法正常工作 任何帮助都会得到满足。
答案 0 :(得分:0)
好的,我得到了这个,如果将来有人有同样的问题。 解决方案是在 sprset_conf 中的 sphinx.conf 文件中添加您希望能够搜索的特殊字符。
因此,对于我的H& M案例,您需要添加&字符(U + 026)到字符集表。