Thinking Sphinx は、ActiveRecord を Sphinx 全文検索ツールに接続するためのライブラリであり、Rails と緊密に統合されています (ただし、他の Ruby Web フレームワークでも動作します)。現在のリリースは v5.6.0 です。
アップグレード時に必要な変更については、変更履歴とリリース ノートを参照してください。特にリリース ノートは、重大な変更や新機能の詳細について非常に詳しく説明されています。
このドキュメントには、v4 から v5、v3 から v4、および v1/v2 から v3 へのアップグレードに必要な内容の詳細も記載されています。
これは gem なので、他の gem と同様にインストールします。 MRI を使用している場合は mysql2 gem を指定する必要があり、JRuby を使用している場合は jdbc-mysql を指定する必要もあります。
gem 'mysql2', '~> 0.4', :platform => :ruby
gem 'jdbc-mysql', '~> 5.1.35', :platform => :jruby
gem 'thinking-sphinx', '~> 5.5'
上記の MySQL gem は 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 を使用している場合は、かなり古いバージョンであっても、PostgreSQL データベースとうまく連携するため、v2.2.11 をお勧めします (ただし、MySQL またはリアルタイム インデックスを使用している場合は、v3.3.1 でも問題ありません)。
代わりに Manticore を選択する場合は、v2.8 以降で動作しますが、積極的にテストされているため、v4 以降をお勧めします。 v4.2 および 5.0 リリースにはファセット検索に関するバグがありましたが、それは Manticore v6.0 で修正されました。
現在考えている Sphinx は、Rails/ActiveRecord 4.2 以降をサポートするように構築されています。 Rails の代わりに Sinatra と ActiveRecord を使用している場合は問題ありません。Gemfile にthinking-sphinx
リストするときに:require => 'thinking_sphinx/sinatra'
オプションを必ず追加してください。
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
Copyright © 2007-2024、Thinking Sphinx は Pat Allan によって開発および保守されており、オープンなMITライセンスに基づいてリリースされています。パッチに貢献してくださった皆様に心より感謝いたします。