4

我正在从 thinking_sphinx ~2.5 升级到 3.0.3,以遵循 heroku 插件 fly_sphinx 的设置说明。升级可能根本没有必要,但现在我已经完成了,所以不妨完成它。

当我尝试搜索(例如 Post.search("search term"))时,我得到以下信息:

Can't connect to MySQL server on '127.0.0.1' (61)

我用 post_index.rb 设置了我的索引文件夹

ThinkingSphinx::Index.define :post, :with => :active_record do
  (. . . code here . . .)
end

我有我的 config/thinking_sphinx.yml 文件

development:
 version: 3.0.3
 mysql41: 9110
 morphology: stem_en
 html_strip: 1
 min_infix_len: 2
 bin_path: "/usr/local/bin"
 searchd_binary_name: searchd
 indexer_binary_name: indexer
 host: 127.0.0.1
test:
 version: 3.0.3
 mysql41: 9110
 morphology: stem_en
 html_strip: 1
 min_infix_len: 2
production:
 version: 3.0.3
 mysql41: 9110
 morphology: stem_en
 html_strip: 1
 min_infix_len: 2

和 Gemfile

gem 'mysql2',          '0.3.12b5'
gem 'thinking-sphinx', '3.0.3' #'2.0.11'
gem 'flying-sphinx',   '1.0.0' #'0.8.4'

我在本地和 heroku 上运行 postgres

谢谢!

编辑

现在我的thinking_sphinx.yml 看起来像这样:

development:
  mysql41: 9110
  morphology: stem_en
  html_strip: 1
  min_infix_len: 2
  bin_path: "/usr/local/bin"
  host: 127.0.0.1
test:
  mysql41: 9111
  morphology: stem_en
  html_strip: 1
  min_infix_len: 2
production:
  morphology: stem_en
  html_strip: 1
  min_infix_len: 2

当我尝试搜索时,当前未运行。

Stopped searchd daemon (pid: ).
Generating configuration to /Users/Achilles/Desktop/dev/mocs/config/development.sphinx.conf
Sphinx 2.0.6-release (r3473)
Copyright (c) 2001-2012, Andrew Aksyonoff
Copyright (c) 2008-2012, Sphinx Technologies Inc (http://sphinxsearch.com)

using config file '/blah/blah/blah/development.sphinx.conf'...
indexing index 'post_core'...
ERROR: index 'post_core': infixes and morphology are enabled, enable_star=0
total 0 reads, 0.000 sec, 0.0 kb/call avg, 0.0 msec/call avg
total 0 writes, 0.000 sec, 0.0 kb/call avg, 0.0 msec/call avg
Failed to start searchd daemon. Check /Users/Achilles/Desktop/dev/mocs/log/development.searchd.log.
Failed to start searchd. Check the log files for more information.
4

1 回答 1

3

您需要更改以下内容:

  • 从文件中删除version设置。thinking_sphinx.yml此设置是为了清楚您使用的是哪个版本的Sphinx ,而不是Thinking Sphinx
  • 更新到 TS v3.0.4 - 也许不重要,但使用最新版本并没有什么坏处。
  • 不要mysql41为您的生产环境设置 - 最好为每个开发和测试设置不同的值 - 这样守护程序可以同时在两个环境中运行。
  • 您还可以删除这些*_binary_name设置 - 鉴于您将它们设置为默认值,没有多大意义。

一旦这一切都改变了,运行rake ts:rebuild看看你是否可以连接......但在这一点上,有必要澄清你是在本地还是在 Heroku 上看到这个问题?

于 2013-07-30T01:24:01.527 回答