Search Kick Gem - Pour rendre votre recherche intelligente sur l'application Rails

Search kick Gem est une gemme Ruby qui s'exécute sur Elasticsearch et facilite les recherches de manière conviviale pour Rails. De plus, il vous permet d'ajouter plus de fonctionnalités, notamment des analyses, la saisie semi-automatique et des résultats personnalisés. Searchkick réalise ce que recherchent vos utilisateurs. À mesure que de plus en plus d’individus chassent, cela devient plus brillant et les résultats s’améliorent. C'est bienveillant pour les concepteurs – et surnaturel pour vos utilisateurs. Il gère les radicaux, les caractères spéciaux, les espaces supplémentaires, les fautes d'orthographe et les synonymes personnalisés. Pour commencer, assurez-vous qu'Elasticsearch est installé sur votre ordinateur personnel. En fonction de votre système d'exploitation, le processus d'installation est légèrement différent et assurez-vous d'avoir au moins Java 7. Une fois cela fait, ajoutez et installez searchick à votre application Rails en ajoutant ce qui suit à votre Gemfile et en exécutant l'installation du bundle.
gemme 'searchkick'
Une fois que vous avez installé les deux et que vous êtes prêt à l'utiliser, vous devez indiquer les modèles que vous souhaitez pouvoir rechercher dans votre application. Ajoutez simplement searchkick au fichier modèle pour le faire fonctionner. Ensuite, nous devons réindexer les modèles pour qu'Elasticsearch puisse fonctionner correctement. Dans votre terminal, exécutez :
râteau searchkick: réindexation: tous
La recherche avec searchkick est tout à fait simple. Exécutez essentiellement YourModel.search, suivi des paramètres de recherche et des filtres que vous souhaitez ajouter. Par exemple, l'une des recherches les plus complexes est ci-dessous : @offers = Offer.search params[:search], page : params[:page], per_page : 10, order : {starttime : :desc}, champs : [{offer_name : :word_start}, {offer_request_name : word_start}:price], où : { starttime : { gte: DateTime.strptime(params[:fromdate], '%m/%d/%Y'), lte : DateTime.strptime(params[: todate], '%m/%d/%Y') } } Dans cette recherche, nous prenons la requête de recherche de l'utilisateur avec params[:search] et parcourons les leçons avec les conditions suivantes : Pagination: Cette partie de code renvoie les résultats de la recherche en pages de 10. Vous pouvez modifier le nombre d'éléments de liste dont vous avez besoin sur chaque page en utilisant cette méthode. Cela fonctionne à la fois avec will_paginate et kaminari. Commande: order: {starttime: :desc} - Cette méthode détermine dans quel ordre les résultats sont renvoyés. En utilisant cela, nous pouvons modifier l'affichage des résultats par ordre croissant ou décroissant. Dans ce cas, nous avons renvoyé en premier les résultats les plus récents. Des champs: [{offer_name : :word_start},{offer_request_name : :word_start} :price] – Dans cette méthode, nous avons permis aux utilisateurs de rechercher par nom d'offre, type d'offre ou prix de l'offre. La méthode word_start permet aux utilisateurs de saisir uniquement la première partie du nom de l'offre tout en obtenant l'offre dans les résultats de recherche. Par exemple, une recherche de « ch » révélerait toujours « chat ». Vous pouvez également utiliser word_middle et word_end. Pour un texte plus long, searchkick prend également en charge text_start, text_middle et text_end. Où: heure de début : {gte : DateTime.strptime(params[:fromdate], '%m/%d/%Y'), lte : DateTime.strptime(params[:todate], '%m/%d/%Y')}. Il permet aux utilisateurs d'utiliser facilement des filtres dans leur application. Nous voulions filtrer entre les dates, nous avons utilisé l'heure de début pour trouver les offres Définition d'attributs de recherche personnalisés Une dernière fonctionnalité intéressante de searchkick est la méthode search_data que vous pouvez ajouter à vos modèles. Cela vous permet d'ajouter ou de remplacer des attributs que l'utilisateur peut rechercher. Ce faisant, vous pouvez créer des paramètres de recherche personnalisés ou effectuer une recherche basée sur les associations d'un modèle. Vous trouverez ci-dessous un exemple de l'une des méthodes search_data que nous avons implémentées. déf search_data       attributs.merge(         offer_request_name : offer_requests.map(&:name),        ) fin Indices multiples Effectuez une recherche dans plusieurs index avec :
Searchkick.search « search_query », index_name : [Offer, OfferRequest]
Notre Développeurs Ruby on Rails Ici à RailsCarma ne se contentent pas de créer des applications mais créent des phénomènes. En utilisant des techniques futuristes, ils fournissent des applications brillantes, conçoivent une UI/UX belle et attrayante, développent des frontaux clairs, créent des applications évolutives et les gèrent sur le Cloud. En bref, nos développeurs Ruby on Rails – « Donnez vie à vos idées ». Commentez ci-dessous ou Contactez-nous en cas de question.
Katneni Naga Sai Tejaswi
Développeur de logiciels senior

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