Sphinx_Query失败:没有启用本地索引进行搜索

时间:2012-05-11 05:11:57

标签: php mysql sphinx

您好我在我的测试服务器中配置了sphinx搜索。

现在我收到这种错误“Sphinx_Query失败:没有启用本地索引搜索”。

我不知道为什么会出现这个错误。任何身体都可以帮助我。

这是我的狮身人面像

source objectcollection
{
    type                    = mysql
    sql_host                = localhost
    sql_user                = root
    sql_pass                = root
    sql_db                  = mydatabase
    sql_port                = 3306  

    sql_query                       = \
        SELECT id, id as mid  obtype_id, searchtext from tab_objectcollection;

    sql_attr_uint           = mid
    sql_attr_uint           = obtype_id
    sql_query_info      = SELECT * FROM tab_objectcollection WHERE id=$id

}


index combinedobject
{
    source              = objectcollection
    path                = /usr/local/sphinx/var/data/objectcollection
    morphology          = stem_en
    min_stemming_len    = 4
    stopwords           = /usr/local/sphinx/var/data/stopwords.txt
    min_word_len        = 3
    min_prefix_len      = 3
    min_infix_len       = 0
    enable_star         = 1
    phrase_boundary = ., ?, !, U+2026 # horizontal ellipsis
    phrase_boundary_step = 100
    html_strip = 1

}


indexer
{
        # memory limit, in bytes, kiloytes (16384K) or megabytes (256M)
        # optional, default is 32M, max is 2047M, recommended is 256M to 1024M
        mem_limit = 256M

        # maximum xmlpipe2 field length, bytes
        # optional, default is 2M
        #
        max_xmlpipe2_field = 16M


        # write buffer size, bytes
        # several (currently up to 4) buffers will be allocated
        # write buffers are allocated in addition to mem_limit
        # optional, default is 1M
        #
        #write_buffer = 16M
}

searchd
{
    listen              = 3312
    max_matches         = 10000
    log                 = /usr/local/sphinx/var/log/searchd.log
    query_log           = /usr/local/sphinx/var/log/query.log
    pid_file            = /usr/local/sphinx/var/log/searchd.pid
}

由于

4 个答案:

答案 0 :(得分:6)

你有

  1. 实际构建了索引 - 被称为'indexer'程序,用于制作索引文件。
  2. 启动了搜索守护程序 - searchd

答案 1 :(得分:3)

我认为此错误意味着sphinx无法在索引中找到“path”指定的文件。在我的情况下,我有:

path = /var/lib/sphinxsearch/data/delta

我成功运行indexer(或者我认为是这样):

indexer delta --rotate

它说收集了一些文件。但是,它实际上创建了这些文件:

/var/lib/sphinxsearch/data/delta.new.sp?

并且searchd无法轮换文件。因此说出日志:

WARNING: rotating index 'delta': rename '/var/lib/sphinxsearch/data/delta.mvp' to '/var/lib/sphinxsearch/data/delta.old.mvp' failed: No such file or directory

解决方案是:删除这些new个文件,并在第一次运行indexer时不使用--rotate

--rotate第一次不起作用的事实对我来说似乎有点像错误,但我真的不愿意提交错误报告。它可能需要我注册或一些废话。无论如何,希望这会有所帮助。

答案 2 :(得分:0)

我的理解是,在配置文件中,您必须提及将哪些表或数据编入索引。此外,Sphinx守护程序可能存在问题,即它无法创建索引数据并将其写入文件。请检查以上内容。 希望以某种方式提供帮助。

答案 3 :(得分:0)

这似乎是sphinx 2.0.5的一个问题,它在这里提交:

http://sphinxsearch.com/bugs/view.php?id=1268

尝试使用其他版本(我尝试过2.0.6并且问题已经消失)