SphinxApi和查询似乎挂起

时间:2012-08-10 17:18:08

标签: php windows-7 apache2 sphinx

使用SphinxAPI以编程方式从PHP访问Sphinx时,查询命令会导致我的Web浏览器思考大约30秒然后失败而没有我可以找到的任何日志消息(或者可能是超时?)。所以这是我的代码:

$cl = new SphinxClient();
$cl->SetServer("localhost", 9312);
$res = $cl->query($query, "isp");

此时执行停止,就好像发生了一些错误,但没有记录在我的sphinx.conf文件的logquery_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日志,没有关于这个问题的任何内容。

2 个答案:

答案 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行)