Sphinx搜索错误:查询过于复杂,堆栈不够

时间:2013-12-10 21:34:00

标签: php macos sphinx

我正在尝试在Mac上设置Sphinx搜索。

我已经完成了安装并对表格编制了索引。如果我尝试使用搜索,则会出现以下错误。

index 'jokes': search error: query too complex, not enough stack (thread_stack=197908K or higher required).

我在谷歌搜索了thread_stack并增加了它的大小,但没有运气。我多次重启狮身人面像。

以下是我的配置文件。

source src1
{
    type            = mysql
    sql_host        = localhost
    sql_user        = root
    sql_pass        = root
    sql_db          = searchj_jokes
    sql_port        = 3307
    sql_query       = SELECT entry_id, entry, picture_url,tags,date_added FROM jokes
}

index jokes
{
    source          = src1
    path            = indexes/jokes
    docinfo         = extern
    mlock           = 0
    morphology      = none
    min_word_len        = 1
    charset_type        = utf-8
    html_strip      = 0
}


source tags
{
        type                    = mysql
        sql_host                = localhost
        sql_user                = root
        sql_pass                = root
        sql_db                  = searchj_jokes
        sql_port                = 3307
        sql_field_string        = tag
        sql_query               = SELECT tag_id,tag FROM tags
}

index tagsIndex
{
        source                  = tags
        path                    = indexes/tagsIndex
        docinfo                 = extern
        mlock                   = 0
        morphology              = none
        min_word_len            = 1
        charset_type            = utf-8
        html_strip              = 0
}

indexer
{
    mem_limit       = 32M
}

searchd
{
    listen          = 3307
    log             = log/searchd.log
    query_log       = log/query.log
    pid_file        = log/searchd.pid   
    thread_stack    = 8M
}

我也看不到日志中的任何错误。如果任何人可以帮我猜出可能是什么错误,那将会有所帮助。

2 个答案:

答案 0 :(得分:2)

我最终找到了答案。

分享到这里:

只需修改sphinx.conf并更改

即可

sql_query_info = SELECT * FROM documents WHERE id=$id

#sql_query_info = SELECT * FROM documents WHERE id=$id

然后重启你搜索。

答案 1 :(得分:1)

我是advised at sphinxsearch.com以避免使用命令行搜索工具和API。相反,他们建议我使用SphinxQL。以下内容适用于我,也可能适合您。

  1. 启动searchd
  2. 从命令行发出如下查询:
    mysql -h0 -P9306 -e "select * from jokes where match('chicken cross road'); show meta;"