【问题标题】:Sphinx searchd error: Query failed: expected searchd protocol version 1+, got version '0'Sphinx searchd 错误:查询失败:预期 searchd 协议版本 1+,得到版本“0”
【发布时间】:2023-12-21 18:08:01
【问题描述】:

我最近在一个运行 CentOS 的 EC2 实例上安装了 Sphinx 搜索。从命令行使用搜索工作正常,我已经创建了一个有效的文档索引。但是,当我尝试通过 searchd 守护程序访问 php api 时,出现以下错误:

Query failed: expected searchd protocol version 1+, got version '0'

这是从 sphinx.conf 搜索到的配置信息:

searchd
{
    listen          = /var/run/searchd.sock
    log             = /usr/local/sphinx/var/log/searchd.log
    query_log       = /usr/local/sphinx/var/log/query.log
    read_timeout    = 5
    max_children    = 30
    pid_file        = /usr/local/sphinx/var/log/searchd.pid
    max_matches     = 1000
    seamless_rotate = 1
    preopen_indexes = 1
    unlink_old      = 1
    workers         = threads # for RT to work
}

我无法解决这个问题。任何帮助将不胜感激。

编辑 1:我已经启动了 searchd 守护进程。

【问题讨论】:

    标签: linux search sphinx


    【解决方案1】:

    API 和 searchd 版本不匹配。使用与 searchd 相同的 API 可能会更好。

    【讨论】:

    • 我正在使用通常推荐的版本 2.0.1-beta 中包含的两个版本。我怎样才能验证这个问题,然后找到正确的版本一起使用?
    • 可能有 2 个守护进程正在运行,而您连接到最旧的一个。你能发出“ps aufx | grep searchd”来确保它的一个守护进程还活着吗?
    【解决方案2】:

    你的 PHP api 版本低于 searchd。 只需尝试与 searchd 相同的客户端 api。

    【讨论】:

      【解决方案3】:

      这很可能是性能问题。 当 searchd 无法响应太多请求时,您将收到该错误。

      【讨论】:

        最近更新 更多