Ruby on Rails - 思考狮身人面像问题

时间:2011-08-17 16:43:43

标签: ruby thinking-sphinx

  

可能重复:
  Problem running Thinking Sphinx with Rails 2.3.5

我正在运行rails 2.3.5 每次我运行rake ts:start或ts.rebuild rake文件都包含以下内容:

Sphinx cannot be found on your system. You may need to configure the following
settings in your config/sphinx.yml file:
  * bin_path
  * searchd_binary_name
  * indexer_binary_name

rake aborted!
key not found

我运行Sphinx并且配置中的sphinx.yml是正确的:(我相信)

bin_path: /usr/bin/searchd
  searchd_binary_name: searchd
  indexer_binary_name: sphinx-indexer

Sphinx似乎正在运行,就像它运行时一样(通过运行命令:service searchd start)

浏览到使用搜索的页面时出现的错误是:

ThinkingSphinx::SphinxError in Jobs#index
 Showing app/views/jobs/index.html.erb where line #30 raised:
 unknown local index 'job_core' in search request

而不是连接错误? 这里可能存在很多问题,但我被困住了。 或者,我可以重写我正在修改使用不同搜索功能的代码,如果是这样,最好的是什么?

2 个答案:

答案 0 :(得分:1)

bin_path不应包含实际的二进制名称(因为您使用searchd_binary_nameindexer_binary_name进行设置) - 所以只需/usr/bin即可。

答案 1 :(得分:1)

将你的sphinx.yml配置与我的比较,看起来我的bin_path,search_binary_name和index_binary_name的值表示为字符串,但这似乎并不重要。我的索引器二进制文件是 索引器 而不是 sphinx-indexer

development:
    min_infix_len: 3
    config_file: "./config/development.sphinx.conf"
    searchd_log_file: "./log/searchd.log"
    query_log_file: "./log/searchd.query.log"
    pid_file: "./log/searchd.development.pid"
    bin_path: "/usr/local/bin"
    searchd_binary_name: "searchd"
    indexer_binary_name: "indexer" 

所以也许值得检查一下你是否指定了正确的二进制名称。这是Pat所说的不包括bin_path中的搜索二进制名称的补充。