使用SphinxAPI以编程方式从PHP访问Sphinx时,查询命令会导致我的Web浏览器思考大约30秒然后失败而没有我可以找到的任何日志消息(或者可能是超时?)。所以这是我的代码:
$cl = new SphinxClient();
$cl->SetServer("localhost", 9312);
$res = $cl->query($query, "isp");
此时执行停止,就好像发生了一些错误,但没有记录在我的sphinx.conf文件的log
或query_log
位置。
对于我的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提示符下,搜索工具按预期工作。
我已经搜索了SphinxSearch site中记录的Windows服务。我可以发布更多的sphinx.conf是有人关心的。这种情况似乎与我在Google上看到的任何其他人都不匹配。有时它是一个端口问题,可以在其他问题中看到,但我认为不是这样。
那么可能导致查询命令思考和失败的原因是什么,或者至少在哪里可能会抛出错误?我还检查了Apache2日志,没有关于这个问题的任何内容。
答案 0 :(得分:2)
在Sphinx for Windows中使用localhost
是个已知问题。请按localhost
替换127.0.0.1
。
如SphinxSearch/Troubleshooting中所述:
当$ wgSphinxSearch_host维护为localhost时,Windows Vista和Windows 7出现问题因此建议使用127.0.0.1而不是localhost而不是
答案 1 :(得分:0)
试
listen = 127.0.0.1:9312
并更新sphinx版本,旧版本bug(src / sphinxstd.h,第1389行)