Contact Time 24 x 7

300 Convent Street, Suite 1330, San Antonio, Tx, 78205 USA

Contact Time 24 x 7
Contact us info@iterontech.com
Phone Number +41 61 272 95 95

Blog

top mobile app development company in europe25 NOV

Sunspot Solr Search – Installation dans l’application Rails en moins de 5 minutes

by Elixir Consultant

Sunspot Solr Search – Installation dans l’application Rails en moins de 5 minutes

Voici un guide de 5 minutes pour démarrer avec l’application Sunspot Solr dans l’application Ruby on Rails. À la fin de ce blog, vous devriez avoir une recherche en texte intégral dans un environnement de développement, alimentée par une instance de Solr en cours d’exécution locale.
La recherche en texte intégral n’a jamais été utilisée de manière significative et avec toute la puissance réelle du moteur de recherche Solr et toute la beauté de Ruby; Sunspot [https://github.com/sunspot/sunspot] expose toutes les fonctionnalités de recherche les plus puissantes de Solr à l’aide d’une API. Sunspot est une bibliothèque Ruby pour une interaction puissante et expressive avec le moteur de recherche Solr. Les développeurs aiment plus Sunspot Solr Search car cela signifie une recherche en texte intégral robuste et flexible, sans requête booléenne ni programmation par chaîne.

Installation de base de SunSpot:

Avant d’installer gem, nous devons installer JRE (Java Runtime Environment) pour la configuration de solr

$ sudo apt-get install openjdk-6-jre
Ajoutez la ligne suivante dans Gemfile:
gem ‘sunspot_rails’
gem ‘sunspot_solr’
Mettre à jour le paquet maintenant:
$ bundle install

Exécutez la commande suivante pour générer le fichier config / sunspot.yml:

rails g sunspot_rails: installer

Dans config / sunspot.yml, nous pouvons ajouter / modifier les configurations SOLR par défaut en fonction de l’environnement.

Production:
solr:
nom d’hôte:
port: 8983
niveau_log: AVERTISSEMENT
chemin: / solr / default

Le numéro de port par défaut de l’environnement de développement est 8982.
Après index de données, nous pouvons voir la liste de données indexées dans

http: //: / solr.
Par exemple, http: // localhost: 8982 / solr.
Et la configuration des “taches solaires” est terminée.

Exécution de SunSpot-Solr

Solr est un serveur HTTP autonome, mais Sunspot est livré avec une copie déjà configurée pour fonctionner avec Sunspot. Si sunspot_solr a été installé, démarrez la distribution Solr empaquetée avec:

bundle exec runs tache solaire: solr: start

Lorsque cette commande est exécutée pour la première fois dans une instance d’application, elle crée un répertoire solr / dans la racine de l’application Rails. Ce dossier racine contient la configuration par défaut de Solr, ainsi que les fichiers de données réels de l’index Solr.

Installation de recherche SunSpot Solr – Dépannage de base:

Si vous voyez: Errno :: ECONNREFUSED (Connexion refusée – connect (2)) Alors peut-être:

Le serveur Solr n’est pas démarré correctement, exécutez la commande:

$ rake tache solaire: solr: start

Une erreur s’est produite lors du démarrage du serveur solr

faire

$ rake tache solaire: solr: run

pour exécuter le serveur au premier plan et vérifier les erreurs.

Si la même erreur se produit uniquement dans l’environnement de test, mais fonctionne correctement dans l’environnement de développement, vérifiez l’environnement et appelez la tâche correctement:

$ RAILS_ENV = testez la tache solaire du rake: solr: run

Recherche SunSpot Solr – Configuration du modèle d’application:

Dans les applications en cours de développement, nous avons un modèle Question, avec les champs Description et Catégorie. Pour le configurer pour la recherche par mot clé Sunspot Solr, nous utilisons la méthode de recherche suivante:

Classe Question <ActiveRecord :: Base consultable dans la base de données: Description,: default_boost => 2
text: Catégorie
fin
fin

Notez que le mot clé «texte» signifie ici que nous créons un champ qui peut être recherché en texte intégral. Le paquet sera considéré comme séparé en mots-clés individuels, puis ces mots-clés seront comparés aux mots dans les requêtes de recherche par mot-clé. Il existe de nombreux autres types de champs, mais le texte est le seul qui est recherché par mots-clés.

Ensuite, le paramètre default_boost signifie que, sauf indication contraire, les mots correspondant au champ: Description doivent être considérés comme deux fois plus pertinents que les mots correspondant au champ: Catégorie.
Maintenant que Sunspot sait comment indexer le modèle Question, nous devons importer les données existantes dans Solr. Chaque fois qu’une question est créée, mise à jour ou détruite, Sunspot :: Rails apportera automatiquement les modifications à l’index. nous n’avons besoin de faire une réindexation complète que si nous avons ajouté ou modifié une définition consultable pour un modèle.
Ajout de l’application Sunspot Solr Search à Rails:
Dans l’application rails, Sunspot Solr Search peut faire beaucoup plus qu’une simple recherche par mot-clé, mais nous essayons de l’installer en cinq minutes et nous n’avons concentré que les principes fondamentaux de l’application.
Considérons une situation dans laquelle nous avons un formulaire de recherche dans lequel un utilisateur tape certains mots clés et soumet un paramètre «: q» à la méthode de recherche de QuestionsController #.

classe QuestionsController <ApplicationController def search @search = Question.search (: include => [: commentaires]) fait des mots-clés (params [: q])
fin
fin
fin

Notre variable @search se voit attribuer un objet de classe Sunspot :: Search. Voici comment nous allons travailler avec cela dans la vue:

.résultats
– @ search.each_each_hit_with_result do | titre, question |
.résultat
% h2 = h question.title
% p = h tronqué (question.description,: longueur => 100)
.pagination
= will_paginate (@ search.results)

C’est ça…. la configuration rapide de Sunspot Solr Search – recherche impressionnante en texte intégral dans l’application Rails. Écrira plus sur les concepts de recherche dans les prochaines semaines.

Tags:

Elixir Consultant

Leave a Comment

PRIVACY POLICY © 2019 ITERON All Rights Reserved