当使用SphinxAPI以编程方式从PHP访问Sphinx时,查询命令会导致我的Web浏览器思考大约30秒,然后在没有任何日志消息的情况下失败(或者可能是超时? 所以这是我的代码:
$cl = new SphinxClient();
$cl->SetServer("localhost", 9312);
$res = $cl->query($query, "isp");
此时,执行停止,好像发生了一些错误,但没有记录log
或query_log
我的 sphinx.conf 文件的位置。
对于我的 sphinx.conf 文件,缩写部分是:
searchd {
listen = 9312
listen = 9306:mysql41
log = {$MY_BASE}'ISP_Sphinx'log'searchd.log
query_log = {$MY_BASE}'ISP_Sphinx'log'query.log
read_timeout = 5
client_timeout = 300
max_children = 30
pid_file = {$MY_BASE}'ISP_Sphinx'log'searchd.pid
{$ETC, ETC, ETC}
}
在 DOS 提示符下,搜索工具按预期工作。
我已经搜索了作为Windows服务运行的搜索,如SphinxSearch站点所记录的那样。 我可以发布更多的狮身人面像.conf,有人关心。 这种情况似乎与我在谷歌上看到的任何其他情况都不匹配。 有时这是一个端口问题,可以在其他问题中看到,但我认为这里不是这样。
那么,是什么可能导致查询命令思考并失败,或者至少错误可能被转储到其他地方? 我还检查了 Apache2 日志,但没有任何关于此问题的内容。
在
Windows 版 Sphinx 中使用 localhost
是一个已知的问题。请将localhost
替换为 127.0.0.1
。
如SphinxSearch/Troublecasing中所述:
Windows Vista 和 Windows 7 在将 $wgSphinxSearch_host 维护为 localhost 时出现问题,因此建议使用 127.0.0.1 代替 localhost
。
试试
listen = 127.0.0.1:9312
并更新狮身人面像版本,旧版本错误(src/sphinxstd.h,第 1389 行)