0

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

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

此时执行停止,好像发生了一些错误,但没有登录logquery_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 提示符下,搜索工具按预期工作。

我已经 searchd 作为 Windows 服务运行,如SphinxSearch 站点中所述。如果有人关心,我可以发布更多 sphinx.conf。这种情况似乎与我在 Google 上看到的任何其他情况都不匹配。有时这是一个端口问题,可以在其他问题中看到,但我认为这里不是这样。

那么是什么导致查询命令思考并失败,或者至少在其他地方可能会转储错误?我还检查了 Apache2 日志,但没有关于这个问题的任何内容。

4

2 回答 2

2

在 Sphinx for Windows 中使用localhost是一个已知问题。请替换localhost127.0.0.1

SphinxSearch/Troubleshooting中所述:

Windows Vista 和 Windows 7 在 $wgSphinxSearch_host 维护为 localhost 时出现问题,因此建议使用 127.0.0.1 而不是 localhost

于 2012-08-10T17:29:18.027 回答
0

尝试

listen = 127.0.0.1:9312

并更新 sphinx 版本,旧版本错误(src/sphinxstd.h,第 1389 行)

于 2012-08-10T17:29:59.453 回答