Recherche…


Installation et test

La première chose que vous voulez faire pour le développement local est d'installer ElasticSearch sur votre ordinateur et de le tester pour voir s'il fonctionne. Il faut que Java soit installé. L'installation est assez simple:

  • Mac OS X: brew install elasticsearch
  • Ubuntu: sudo apt-get install elasticsearch

Alors commencez:

  • Mac OS X: les brew services start elasticsearch
  • Ubuntu: sudo service elasticsearch start

Pour le tester, le plus simple est d' curl . Cela peut prendre quelques secondes, alors ne paniquez pas si vous n'obtenez aucune réponse au début.

curl localhost:9200

Exemple de réponse:

{
  "name" : "Hydro-Man",
  "cluster_name" : "elasticsearch_gkbonetti",
  "version" : {
    "number" : "2.3.5",
    "build_hash" : "90f439ff60a3c0f497f91663701e64ccd01edbb4",
    "build_timestamp" : "2016-07-27T10:36:52Z",
    "build_snapshot" : false,
    "lucene_version" : "5.5.0"
  },
  "tagline" : "You Know, for Search"
}

Mise en place d'outils pour le développement

Lorsque vous commencez à utiliser ElasticSearch (ES), il peut être utile de disposer d'un outil graphique qui vous aide à explorer vos données. Un plugin appelé elasticsearch-head ne fait que cela. Pour l'installer, procédez comme suit:

  • Découvrez dans quel dossier ES est installé: ls -l $(which elasticsearch)
  • cd dans ce dossier et lance le programme d’installation du plugin: elasticsearch/bin/plugin -install mobz/elasticsearch-head
  • Ouvrez http://localhost:9200/_plugin/head/ dans votre navigateur

Si tout fonctionnait comme prévu, vous devriez voir une interface graphique agréable sur laquelle vous pouvez explorer vos données.

introduction

ElasticSearch possède une API JSON bien documentée, mais vous voudrez probablement utiliser certaines bibliothèques qui gèrent cela pour vous:

  • Elasticsearch - le wrapper de bas niveau officiel pour l'API HTTP

  • Elasticsearch-rails - l'intégration Rails officielle de haut niveau qui vous permet de connecter vos modèles Rails avec ElasticSearch à l'aide du modèle ActiveRecord ou Repository

  • Chewy - Une intégration alternative non officielle de haut niveau de Rails, qui est très populaire et possède sans doute une meilleure documentation

Utilisons la première option pour tester la connexion:

gem install elasticsearch

Ensuite, lancez le terminal Ruby et essayez-le:

require 'elasticsearch'

client = Elasticsearch::Client.new log: true
# by default it connects to http://localhost:9200

client.transport.reload_connections!
client.cluster.health

client.search q: 'test'

Searchkick

Si vous souhaitez configurer rapidement elasticsearch, vous pouvez utiliser le joyau de searchkick:

gem 'searchkick'

Ajoutez le moteur de recherche aux modèles que vous souhaitez rechercher.

class Product < ActiveRecord::Base
  searchkick
end

Ajouter des données à l'index de recherche.

Product.reindex

Et pour interroger, utilisez:

products = Product.search "apples"
products.each do |product|
  puts product.name
end

Assez vite, les connaissances élastiques de recherche ne sont pas nécessaires ;-)

Plus d'informations ici: https://github.com/ankane/searchkick



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow