如何配置PostgreSQL或MySQL以使用Sphinx设置数据库?

如何配置PostgreSQL或MySQL以使用Sphinx设置数据库?,mysql,sphinx,thinking-sphinx,Mysql,Sphinx,Thinking Sphinx,我真的需要帮助安装狮身人面像并使其运行 我在Rails3上,我遵循以下一组指示:安装Sphinx 认为斯芬克斯很容易安装,因为它是一个宝石。然而,指南说我需要安装Sphinx和Thinking Sphinx才能开始(这是真的吗?)。我检查了Ryan Bates的railscast是否考虑Sphinx,他只安装了插件并立即开始 无论如何,我是通过MacPorts安装Sphinx的,以下是证据: ... ---> Configuring mysql5 ---> Buildin

我真的需要帮助安装狮身人面像并使其运行

我在Rails3上,我遵循以下一组指示:安装Sphinx

认为斯芬克斯很容易安装,因为它是一个宝石。然而,指南说我需要安装Sphinx和Thinking Sphinx才能开始(这是真的吗?)。我检查了Ryan Bates的railscast是否考虑Sphinx,他只安装了插件并立即开始

无论如何,我是通过MacPorts安装Sphinx的,以下是证据:

...
  --->  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
它自动将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
# 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 thinking\u sphinx:index
给了我这个:

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

rake aborted!
no such file to load -- sqlite3
所以我认为我的数据库仍然是在sqlite3上配置的。因此,我将gem切换到mySQL并编辑了我的database.yml文件,如下所示:

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

   end
# 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)


任何提示都是慷慨而有用的。如果提供帮助,也愿意切换到PostgreSQL。谢谢

您需要将
mysql
mysql2
作为适配器,并在gem文件中包含任意一个gem(与适配器同名)。我推荐mysql2,因为它是主动维护的——但请记住,如果您使用的是Rails 3.0.x,那么您必须使用mysql2的0.2.x版本。如果您使用的是Rails 3.1,那么就使用mysql2 0.3.x。

您需要将
mysql
mysql2
作为适配器,并在gem文件中包含任何一个gem(与适配器同名)。我推荐mysql2,因为它是主动维护的——但请记住,如果您使用的是Rails 3.0.x,那么您必须使用mysql2的0.2.x版本。如果您使用的是Rails 3.1,那么请使用mysql2 0.3.x.

因此您决定忽略错误消息,该错误消息确切地告诉您该怎么做?“请安装mysql5适配器:
gem安装activerecord-mysql5-adapter
”不,我也尝试过,但得到:
错误:在任何存储库中都找不到有效的gem'activerecord-mysql5-adapter'(>=0)错误:可能的替代方案:activerecord jdbcmysql适配器、activerecord nulldb适配器、activerecord odbc适配器、,activerecord jdbc适配器,activerecord postgis适配器
首先,sphinx只支持mysql和postgresql,不支持sqlite3。另外,为了验证您是否安装了Sphinx,您的路径中是否有“searchd”?这就是斯芬克斯搜索守护进程。听起来您需要创建开发MySQL数据库,这需要通过MySQL提示符来完成。@Cody Caughlan。是的,我在opt/local/bin下有“searchd”。我刚刚创建了一个开发MySQL数据库。是的,我知道sphinx只支持这两个选项。所以你决定忽略错误消息,它告诉你该怎么做?“请安装mysql5适配器:
gem安装activerecord-mysql5-adapter
”不,我也尝试过,但得到:
错误:在任何存储库中都找不到有效的gem'activerecord-mysql5-adapter'(>=0)错误:可能的替代方案:activerecord jdbcmysql适配器、activerecord nulldb适配器、activerecord odbc适配器、,activerecord jdbc适配器,activerecord postgis适配器
首先,sphinx只支持mysql和postgresql,不支持sqlite3。另外,为了验证您是否安装了Sphinx,您的路径中是否有“searchd”?这就是斯芬克斯搜索守护进程。听起来您需要创建开发MySQL数据库,这需要通过MySQL提示符来完成。@Cody Caughlan。是的,我在opt/local/bin下有“searchd”。我刚刚创建了一个开发MySQL数据库。是的,我知道斯芬克斯只支持这两个选项。很棒的提示!就这样!我真的很感谢你的帮助。gemfile版本和适配器部分真的让我困惑。很棒的提示!就这样!我真的很感谢你的帮助。gemfile版本和适配器部分真的让我困惑。