2011-09-10 89 views
1

我真的需要帮助安装狮身人面像,并得到它。如何配置PostgreSQL或MySQL以使用Sphinx设置数据库?

我在轨道3上,我遵循以下这组方向:http://freelancing-god.github.com/ts/en/quickstart.html来安装Sphinx。

思维狮身人面像很容易安装,因为它是一个宝石。然而,指南说,我需要安装狮身人面像安装思考狮身人面像(这是真的吗?)。我检查了思维狮身人面像的Ryan Bates的railscast,他只安装了插件并立即开始。

不管怎么说,我通过安装MacPorts的狮身人面像和这里的证明:

... 
    ---> Configuring mysql5 
    ---> Building mysql5 
    ---> Staging mysql5 into destroot 
    ---> Installing mysql5 @5.1.57_0 
    The MySQL client has been installed. 

... 

---> Installing sphinx @0.9.9_0+mysql5 
---> Activating sphinx @0.9.9_0+mysql5 
---> Cleaning sphinx 

它自动MYSQL5配置的狮身人面像。我有mySQL和POSTgreSQL。

现在,下一步是rake thinking_sphinx:index建立在我的用户模型中的指标,看起来像这样经过:

define_index do 
    indexes year 
    indexes major 
    indexes books_buy 
    indexes books_sell 
    indexes facebook 
    indexes restaurants 
    indexes interests 

    end 

然而,rake thinking_sphinx:index给了我这个:

rake aborted! 
Don't know how to build task 'thinking_sphnix:index' 

然后

rake aborted! 
no such file to load -- sqlite3 

所以我想我的数据库是在sqlite3上配置的依然。所以我换宝石到MySQL和编辑我的database.yml文件看起来像这样:

# Switched over to mysql 

# Warning: The database defined as "test" will be erased and 
# re-generated from your development database when you run "rake". 
# Do not set this db to the same as development or production. 
development: 
    adapter: mysql5 
    encoding: utf8 
    database: sphinx_development 
    pool: 5 
    username: root 
    password: 
    socket: /tmp/mysql.sock 

test: 
    adapter: mysql5 
    encoding: utf8 
    database: sphinx_test 
    pool: 5 
    username: root 
    password: 
    socket: /tmp/mysql.sock 

production: 
    adapter: mysql5 
    encoding: utf8 
    database: sphinx_production 
    pool: 5 
    username: root 
    password: 
    socket: /tmp/mysql.sock 

,我得到了这些错误:

rake aborted! 
Please install the mysql5 adapter: `gem install activerecord-mysql5-adapter` (no such file to load -- active_record/connection_adapters/mysql5_adapter) 

ERROR: Could not find a valid gem 'activerecord-mysql5-adapter' (>= 0) in any repository 
ERROR: Possible alternatives: activerecord-jdbcmysql-adapter, activerecord-nulldb-adapter, activerecord-odbc-adapter, activerecord-jdbc-adapter, activerecord-postgis-adapter 
Tony-Ngs-MacBook-Air:sample_app TonyNg$ gem install activerecord-nulldb-adapter 

任何提示将慷慨和乐于助人。如果能提供帮助,也愿意切换到PostgreSQL。谢谢!

+0

所以你决定忽略错误信息,告诉你该怎么做? “**请安装mysql5适配器**:'gem install activerecord-mysql5-adapter'” –

+0

不,我试过了,得到:'错误:找不到有效的gem'activerecord-mysql5-adapter'(> 0)在任何存储库中 错误:可能的替代方案:activerecord-jdbcmysql-adapter,activerecord-nulldb-adapter,activerecord-odbc-adapter,activerecord-jdbc-adapter,activerecord-postgis-adapter ' – Tony

+0

首先,sphinx只支持mysql和postgresql,而不是sqlite3。另外,要验证您是否安装了狮身人面像,您是否已在搜索路径中“搜索”?这就是狮身人面像搜索守护进程。这听起来像你需要创建你的开发MySQL数据库,你需要通过mysql提示符来完成。 –

回答

1

您需要将mysqlmysql2作为您的适配器 - 并且在您的Gemfile中包括gem(与适配器名称相同)。我建议使用mysql2,因为它是积极维护的 - 但请记住,如果您使用的是Rails 3.0.x,那么您必须使用mysql2的0.2.x版本。如果你使用的是Rails 3.1,那么使用mysql2 0.3.x.

+0

棒极了!就是这样!我真的很感激帮助。gemfile版本和适配器部分让我很困惑。 – Tony

相关问题