Configurer Sphinx dans l'application Rails

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

Prenez contact avec nous. Sauvegarder

Abonnez-vous pour les dernières mises à jour

Articles Similaires

Laissez un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

fr_FRFrench