Zoeken…


Installatie en testen

Het eerste wat u voor lokale ontwikkeling wilt doen, is ElasticSearch op uw machine installeren en testen om te zien of deze actief is. Het vereist dat Java wordt geïnstalleerd. De installatie is vrij eenvoudig:

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

Start het dan:

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

Voor het testen is de gemakkelijkste manier met curl . Het kan enkele seconden duren voordat het begint, dus raak niet in paniek als u eerst geen reactie krijgt.

curl localhost:9200

Voorbeeld reactie:

{
  "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"
}

Ontwikkeling van tools voor ontwikkeling

Wanneer u aan de slag gaat met ElasticSearch (ES), is het misschien goed om een grafische tool te hebben die u helpt bij het verkennen van uw gegevens. Een plug-in genaamd elasticsearch-head doet precies dat. Om het te installeren, doet u het volgende:

  • Ontdek in welke map ES is geïnstalleerd: ls -l $(which elasticsearch)
  • cd naar deze map en voer de installatie van de plug-in binary uit: elasticsearch/bin/plugin -install mobz/elasticsearch-head
  • Open http://localhost:9200/_plugin/head/ in uw browser

Als alles werkte zoals verwacht, zou je een mooie GUI moeten zien waar je je gegevens kunt verkennen.

Invoering

ElasticSearch heeft een goed gedocumenteerde JSON API, maar u zult waarschijnlijk enkele bibliotheken willen gebruiken die dat voor u regelen:

  • Elasticsearch - de officiële low-level wrapper voor de HTTP API

  • Elasticsearch-rails - de officiële Rails-integratie op hoog niveau waarmee u uw Rails-modellen kunt verbinden met ElasticSearch met behulp van het ActiveRecord- of Repository-patroon

  • Chewy - Een alternatieve, niet-officiële integratie op hoog niveau van Rails die erg populair is en aantoonbaar betere documentatie heeft

Laten we de eerste optie gebruiken om de verbinding te testen:

gem install elasticsearch

Start vervolgens de robijnrode terminal en probeer het uit:

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

Als je snel elastisch zoeken wilt instellen, kun je de zoekkick gem gebruiken:

gem 'searchkick'

Zoekkick toevoegen aan modellen waarnaar u wilt zoeken.

class Product < ActiveRecord::Base
  searchkick
end

Voeg gegevens toe aan de zoekindex.

Product.reindex

En om te vragen, gebruik:

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

Behoorlijk snelle, elastische zoekkennis niet vereist ;-)

Meer informatie hier: https://github.com/ankane/searchkick



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow