Как настроить PostgreSQL или MySQL для настройки базы данных с помощью Sphinx? - PullRequest
1 голос
/ 10 сентября 2011

Мне действительно нужна помощь в установке Sphinx и его запуске.

Я на рельсах 3, и я следую этим наборам направлений: http://freelancing -god.github.com / ts/en/quickstart.html для установки Sphinx.

Мышление Sphinx было легко установить, так как это драгоценный камень.Тем не менее, в руководстве говорится, что для начала работы необходимо установить Sphinx и Thinking Sphinx (Это правда?).Я проверил Railscast Райана Бейтса на предмет Thinking Sphinx, и он только установил плагин и сразу же начал работу.

В любом случае, я установил Sphinx через 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

Он автоматически настроил 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, если будет предоставлена ​​помощь.Спасибо!

1 Ответ

1 голос
/ 10 сентября 2011

Вам нужно указать либо mysql, либо mysql2 в качестве адаптера - и включить в свой Gemfile любой гем (с теми же именами, что и у адаптеров). Я рекомендую mysql2, так как он активно поддерживается, но имейте в виду, что если вы используете Rails 3.0.x, вы должны использовать версию mysql2 0.2.x. Если вы используете Rails 3.1, используйте mysql2 0.3.x.

...