Ruby on rails Ruby on Rails应用程序中搜索结果页面上的Sphinx连接错误

Ruby on rails Ruby on Rails应用程序中搜索结果页面上的Sphinx连接错误,ruby-on-rails,ruby,postgresql,sphinx,thinking-sphinx,Ruby On Rails,Ruby,Postgresql,Sphinx,Thinking Sphinx,我有一个RoR应用程序,以Posgresql作为数据库。我试图通过使用Sphinx作为搜索引擎并考虑Sphinx gem来设置搜索功能。我已经安装了支持mysql和postgresql的sphinx,考虑到SphinxV3Gem及其依赖项 命令 rake ts:索引 执行时没有错误。日志显示我有20个文档索引了我所有的Post模型记录。 然后我尝试创建搜索结果页面的控制器和视图。这是控制器的搜索操作 def search @query = Riddle::Query.escape(par

我有一个RoR应用程序,以Posgresql作为数据库。我试图通过使用Sphinx作为搜索引擎并考虑Sphinx gem来设置搜索功能。我已经安装了支持mysql和postgresql的sphinx,考虑到SphinxV3Gem及其依赖项

命令

rake ts:索引

执行时没有错误。日志显示我有20个文档索引了我所有的Post模型记录。 然后我尝试创建搜索结果页面的控制器和视图。这是控制器的搜索操作

def search
    @query = Riddle::Query.escape(params[:q])
    @posts = Post.search(@query)
end
当我尝试在搜索视图中使用@posts变量时

localhost:3000/search?q=hello

我有以下错误

ThinkingSphinx::Mainsearch中的ConnectionError

通过MySQL协议连接到Sphinx时出错。通过MySQL协议连接到Sphinx时出错。无法连接到'127.0.0.1'61上的MySQL服务器-从post_core中选择*,其中匹配'hello'和sphinx_deleted=0限制0,20;显示元


Thinking Sphinx将mysql用于其内部用途,您必须将mysql2 gem添加到堆栈中,例如:

gem 'mysql2', '~> 0.3.13'
gem 'thinking-sphinx', '~> 3.1.1'
ts:index任务只存储Sphinx数据,它不会启动响应搜索请求的守护进程。您需要运行ts:start-rake任务才能执行此操作


另外:ts:rebuild一次完成所有这一切:如果Sphinx正在运行,则停止Sphinx,索引数据,启动Sphinx。

我完全卡住了,面临着相同的错误,最后我发现我没有使用此命令在本地系统上安装Sphinx

sudo apt-get update
sudo apt-get install sphinxsearch
有关安装的更多详细信息,请参见此处

确保您还应该在系统上安装mysql服务器以创建连接

我还看了看@blemlump的回答是我的第二步。你应该包括这些宝石也为了运行斯芬克斯

然后转到@pat的答案是我要做的最后一步,当您安装sphinx时,它将启动服务,但您需要停止服务才能运行

rake ts:index
rake ts:rebuild
斯芬克斯在这里