Thinking Sphinx — это библиотека для подключения ActiveRecord к инструменту полнотекстового поиска Sphinx, которая тесно интегрируется с Rails (но также работает с другими веб-фреймворками Ruby). Текущая версия — v5.6.0.
Пожалуйста, обратитесь к журналу изменений и примечаниям к выпуску, чтобы узнать о любых изменениях, которые необходимо внести при обновлении. В примечаниях к выпуску, в частности, достаточно хорошо описаны важные изменения и более подробная информация о новых функциях.
В документации также содержится более подробная информация о том, что необходимо для обновления с v4 до v5, v3 до v4 и v1/v2 до v3.
Это драгоценный камень, поэтому установите его так же, как и любой другой драгоценный камень. Вам также потребуется указать гем mysql2, если вы используете MRI , или jdbc-mysql, если вы используете JRuby:
gem 'mysql2', '~> 0.4', :platform => :ruby
gem 'jdbc-mysql', '~> 5.1.35', :platform => :jruby
gem 'thinking-sphinx', '~> 5.5'
Упомянутые драгоценные камни MySQL необходимы для подключения к Sphinx, поэтому включите их, даже если вы используете PostgreSQL для своей базы данных.
Вам также потребуется установить Sphinx – это описано в расширенной документации.
Начните с прочтения краткого руководства, кроме того, документация должна вам очень пригодиться.
Текущая версия Thinking Sphinx работает со следующими версиями зависимостей:
Библиотека | Минимум | Протестировано против |
---|---|---|
Руби | v2.4 | v2.4, v2.5, v2.6, v2.7, v3.0, v3.1, v3.2 |
Сфинкс | v2.2.11 | v2.2.11, v3.4.1 |
Мантикора | v2.8 | v4.0, v6.0 |
АктивРекорд | v4.2 | v4.2..v7.0 |
Он может работать со старыми версиями Ruby, но настоятельно рекомендуется выполнить обновление до поддерживаемой версии.
Он также должен работать с JRuby, но тестовая среда для этого в CI была ненадежной, поэтому в настоящее время она активно не тестируется.
Если вы используете Sphinx, рекомендуется использовать версию 2.2.11, хотя она довольно старая, поскольку она хорошо работает с базами данных PostgreSQL (но если вы используете MySQL – или индексы реального времени – тогда версия 3.3.1 тоже подойдет).
Если вместо этого вы выбираете Мантикору, подойдет версия 2.8 или новее, но рекомендуется версия 4 или новее, поскольку именно она активно тестируется. В версиях v4.2 и 5.0 были ошибки с поиском фасетов, но это было исправлено в Manticore v6.0.
В настоящее время Thinking Sphinx поддерживает Rails/ActiveRecord 4.2 или новее. Если вы используете Sinatra и ActiveRecord вместо Rails, это нормально – просто убедитесь, что вы добавили опцию :require => 'thinking_sphinx/sinatra'
при перечислении thinking-sphinx
в вашем Gemfile.
Если вам нужна поддержка ActiveRecord 3.2–4.1, обратитесь к выпускам Thinking Sphinx 4.x. Или, если речь идет о поддержке ActiveRecord 3.1, обратитесь к выпускам 3.0.x. Если что-то старше этого, то вам придется использовать Thinking Sphinx v2.x (для Rails/ActiveRecord 3.0) или v1.x (Rails 2.3). Обратите внимание, что эти старые версии больше не поддерживаются.
Вам понадобится либо стандартный Ruby (v2.4 или новее), либо JRuby (9.1 или новее).
Поддерживаются MySQL 5.x и Postgres 8.4 или новее.
Обратите внимание, что в этом проекте действует Кодекс поведения участников. Участвуя в этом проекте, вы соглашаетесь соблюдать его условия.
Чтобы внести свой вклад, клонируйте этот репозиторий и внимательно просмотрите спецификации — вы заметите разницу между приемочными тестами, которые фактически используют Sphinx и проходят полный стек, и модульными тестами (все остальное), которые используют либеральные двойные тесты, чтобы гарантировать, что они верны. вы только тестируете поведение рассматриваемого класса. Я обнаружил, что это приводит к гораздо лучшему дизайну кода.
Вся разработка выполняется в ветке develop
; пожалуйста, основывайте любые запросы на включение на основе этой ветки. Пожалуйста, напишите тесты, а затем код, чтобы они прошли, и отправьте запрос на включение.
Чтобы запустить тесты, вам необходимо создать базу данных с именем thinking_sphinx
:
# Either fire up a MySQL console:
mysql -u root
# OR a PostgreSQL console:
psql
# In that console, create the database:
CREATE DATABASE thinking_sphinx;
Затем вы можете запустить модульные тесты с помощью rake spec:unit
, приемочные тесты с помощью rake spec:acceptance
или все тесты с помощью только rake
. Чтобы запустить их с помощью PostgreSQL, вам необходимо соответствующим образом установить переменную среды DATABASE
:
DATABASE=postgresql rake
Авторские права © 2007–2024. Thinking Sphinx разрабатывается и поддерживается Пэтом Алланом и распространяется под открытой лицензией MIT . Большое спасибо всем, кто предоставил патчи.