Installer Sphinx
Exécutez simplement les trois commandes suivantes sur votre serveur ou machine de développement pour installer Sphinx :
./configure make sudo make install
Cela configurera Sphinx par défaut pour une utilisation avec MySQL. Si vous souhaitez l'utiliser avec PostgreSQL, exécutez configurer
avec le drapeau suivant :
./configure --with-pgsql
Remarque : vous pouvez télécharger le sphinx depuis //sphinxsearch.com/downloads//
Installer Thinking Sphinx
Même s'il y a quelques Sphinx dans Application Rails, j'ai choisi d'opter pour Thinking Sphinx, car il semble être le plus populaire et le plus complet en termes de fonctionnalités. Vous pouvez donc l'installer en tant que plugin Rails en utilisant installation de script/plugin
commande:
installation de script/plugin git://github.com/freelancing-god/thinking-sphinx.git
Écrire du code pour utiliser la recherche sphinx :
Nous devons maintenant indexer nos modèles. Cela consiste à ajouter quelques petites lignes de code dans chaque modèle que vous souhaitez pouvoir rechercher. Supposons donc que nous ayons une application Blog (ce n'est pas le cas de tout le monde !), qui a un modèle Post. Et ce modèle Post contient l'habituel titre
et description
des champs. Nous ajoutons donc le morceau de code suivant sous nos déclarations d'association dans
app/models/post.rb
:
Defin_index fait le titre des index, fin de la description
Ces trois lignes très courtes indiqueront à Thinking Sphinx d'indexer le titre
et description
domaines de la Poste
modèle, et nous permettent de rechercher dans tous nos messages. Il ne nous reste plus qu'à indexer et démarrer Sphinx. Et Thinking Sphinx rend cela très facile grâce à ses tâches Rake pratiques.
Exécutez simplement ceci :
rake ts: reconstruire
Cela s'arrêtera (s'il est démarré), indexera et démarrera Sphinx pour vous. Nous devons maintenant créer un formulaire de recherche rapide. Il s’agira à terme d’une recherche globale sur site, et pas seulement d’une recherche de publication. Nous allons donc créer un nouveau contrôleur :
recherche de contrôleur de script/génération
Créez ensuite une vue sur app/views/search/index.html.erb
et placez-y le formulaire :
Maintenant, dans votre nouveau contrôleur de recherche, créez un nouveau créer
action:
def créer @posts = Post.search params[:search] fin
Crée ton créer
voir à app/views/search/create.html.erb
avec un peu de code pour afficher votre @des postes
de la manière habituelle.
Note:
Nous pouvons même paginer nos résultats en utilisant le plugin WillPaginate :
créer par défaut
@posts = Post.search params[:search], :page => params[:page], :per_page => 10 fin