我有一个以Posgresql为数据库的RoR应用程序。我试图通过使用Sphinx作为搜索引擎来设置搜索功能,并考虑Sphinx。我已经安装了mysql和postgresql支持的sphinx,考虑到sphinx v3 gem和它的依赖关系。
命令
rake ts:索引
执行时没有错误。日志说,我有20个文档索引(我的所有记录的邮政模型)。然后,我尝试为搜索结果页面创建控制器和视图。这是控制器的搜索操作
def search
@query = Riddle::Query.escape(params[:q])
@posts = Post.search(@query)
end当我尝试在搜索视图中使用@post变量时
本地主机:3000/搜索?q=hello
我有跟踪错误。
ThinkingSphinx::ConnectionError in Main#search 通过MySQL协议连接到狮身人面像时出错。通过MySQL协议连接到狮身人面像时出错。无法连接到MySQL服务器上的'127.0.0.1‘(61) -从
post_core选择*匹配(’hello‘)和sphinx_deleted=0限制0,20;显示元
发布于 2014-11-28 03:43:20
ts:index任务只存储狮身人面像数据,它不启动响应搜索请求的守护进程。您需要运行ts:start rake任务才能实现这一点。
另外:ts:rebuild同时完成了所有这一切:停止Sphinx (如果它正在运行),索引数据,启动Sphinx。
发布于 2014-11-27 18:52:22
Thinking使用mysql作为内部用途,您必须将mysql2 gem添加到堆栈中,例如:
gem 'mysql2', '~> 0.3.13'
gem 'thinking-sphinx', '~> 3.1.1'发布于 2015-10-09 04:44:00
我遇到了同样的错误,最后我发现我没有用这个命令在我的本地系统上安装"Sphinx“,
sudo apt-get update
sudo apt-get install sphinxsearch关于安装的更多细节,您可以在这里找到
https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-sphinx-on-ubuntu-14-04
确保您还应该在您的系统上安装"mysql-server“来创建连接。
另外,我看了看,布勒普的回答是我的第二步。你也应该包括那些宝石,这样才能和斯芬克斯一起跑。
然后移到@pat的答案,这是我要走的最后一步,当你安装了狮身人面像时,它会启动服务,但是你需要停止服务才能运行,
rake ts:index
rake ts:rebuild跟狮身人面像一起去。
https://stackoverflow.com/questions/27177098
复制相似问题