我正在将Sphinxsearch集成到我的站点中,并重写我的旧代码以使用Sphinx。我遇到的问题是SphinxQL中的特殊字符在匹配中。
想要搜索H&M
使用普通的mysql,我得到了上千条记录,所以我确信我的数据库中包含了这个单词的标题。
我不需要扩展查询语法的匹配。
$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";还是没有双转义的working.Tried,仍然不起作用。
任何帮助都是徒劳无功。
发布于 2016-01-16 07:42:55
好吧,我明白了,如果将来有人有同样的问题。解决方案是在charset_table.中的sphinx.conf文件中添加您想要搜索的特殊字符。
因此,对于H&M的情况,您需要将&字符(U+026)添加到字符集表中。
https://stackoverflow.com/questions/34479944
复制相似问题