Thinking Sphinx est une bibliothèque permettant de connecter ActiveRecord à l'outil de recherche en texte intégral Sphinx et s'intègre étroitement à Rails (mais fonctionne également avec d'autres frameworks Web Ruby). La version actuelle est la v5.6.0.
Veuillez vous référer au journal des modifications et aux notes de version pour toute modification que vous devez apporter lors de la mise à niveau. Les notes de version en particulier sont assez efficaces pour couvrir les modifications importantes et plus de détails sur les nouvelles fonctionnalités.
La documentation contient également plus de détails sur les éléments impliqués dans la mise à niveau de la v4 vers la v5, de la v3 vers la v4 et de la v1/v2 vers la v3.
C'est un joyau, alors installez-le comme vous le feriez pour n'importe quel autre joyau. Vous devrez également spécifier la gem mysql2 si vous utilisez MRI , ou jdbc-mysql si vous utilisez JRuby :
gem 'mysql2', '~> 0.4', :platform => :ruby
gem 'jdbc-mysql', '~> 5.1.35', :platform => :jruby
gem 'thinking-sphinx', '~> 5.5'
Les gemmes MySQL mentionnées sont requises pour la connexion à Sphinx, veuillez donc les inclure même lorsque vous utilisez PostgreSQL pour votre base de données.
Vous devrez également installer Sphinx – ceci est couvert dans la documentation étendue.
Commencez par lire le guide de démarrage rapide, et au-delà de cela, la documentation devrait plutôt bien vous être utile.
La version actuelle de Thinking Sphinx fonctionne avec les versions suivantes de ses dépendances :
Bibliothèque | Minimum | Testé contre |
---|---|---|
Rubis | v2.4 | v2.4, v2.5, v2.6, v2.7, v3.0, v3.1, v3.2 |
Sphinx | v2.2.11 | v2.2.11, v3.4.1 |
Manticore | v2.8 | v4.0, v6.0 |
Enregistrement actif | v4.2 | v4.2..v7.0 |
Cela peut fonctionner avec les anciennes versions de Ruby, mais il est fortement recommandé de mettre à jour vers une version prise en charge.
Il devrait également fonctionner avec JRuby, mais l'environnement de test correspondant dans CI n'a pas été fiable, il n'est donc pas activement testé pour le moment.
Si vous utilisez Sphinx, la version 2.2.11 est recommandée même si elle est assez ancienne, car elle fonctionne bien avec les bases de données PostgreSQL (mais si vous utilisez MySQL – ou des index en temps réel – alors la version 3.3.1 devrait également convenir).
Si vous optez plutôt pour Manticore, la version 2.8 ou plus récente fonctionne, mais la version 4 ou plus récente est recommandée car c'est ce qui est activement testé. Les versions 4.2 et 5.0 présentaient des bugs avec la recherche de facettes, mais cela a été corrigé dans Manticore v6.0.
Actuellement, Thinking Sphinx est conçu pour prendre en charge Rails/ActiveRecord 4.2 ou version ultérieure. Si vous utilisez Sinatra et ActiveRecord au lieu de Rails, ce n'est pas un problème – assurez-vous simplement d'ajouter l'option :require => 'thinking_sphinx/sinatra'
lors de la liste de thinking-sphinx
dans votre Gemfile.
Si vous souhaitez la prise en charge d'ActiveRecord 3.2-4.1, reportez-vous aux versions 4.x de Thinking Sphinx. Ou, pour la prise en charge d'ActiveRecord 3.1, reportez-vous aux versions 3.0.x. Tout ce qui est plus ancien que cela, alors vous êtes coincé avec Thinking Sphinx v2.x (pour Rails/ActiveRecord 3.0) ou v1.x (Rails 2.3). Veuillez noter que ces anciennes versions ne sont plus activement prises en charge.
Vous aurez besoin du Ruby standard (v2.4 ou plus récent) ou de JRuby (9.1 ou plus récent).
MySQL 5.x et Postgres 8.4 ou supérieur sont pris en charge.
Veuillez noter que ce projet dispose d'un code de conduite des contributeurs. En participant à ce projet, vous acceptez d'en respecter les termes.
Pour contribuer, clonez ce référentiel et parcourez attentivement les spécifications – vous remarquerez la distinction entre les tests d'acceptation qui utilisent réellement Sphinx et passent par la pile complète, et les tests unitaires (tout le reste) qui utilisent des doubles de tests libéraux pour garantir qu'ils nous testons uniquement le comportement de la classe en question. J'ai trouvé que cela conduit à une bien meilleure conception de code.
Tout le développement est effectué sur la branche develop
; veuillez baser toutes les demandes d'extraction sur cette branche. Veuillez écrire les tests, puis le code pour les faire réussir, et envoyer une pull request.
Afin d'exécuter les tests, vous devrez créer une base de données nommée 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;
Vous pouvez ensuite exécuter les tests unitaires avec rake spec:unit
, les tests d'acceptation avec rake spec:acceptance
ou tous les tests avec simplement rake
. Pour les exécuter avec PostgreSQL, vous devrez définir la variable d'environnement DATABASE
en conséquence :
DATABASE=postgresql rake
Copyright © 2007-2024, Thinking Sphinx est développé et maintenu par Pat Allan et est publié sous la licence ouverte MIT . Un grand merci à tous ceux qui ont contribué aux correctifs.