Suche…


Installation und Prüfung

Das erste, was Sie für die lokale Entwicklung tun möchten, ist, ElasticSearch auf Ihrem Computer zu installieren und zu testen, ob es läuft. Es muss Java installiert sein. Die Installation ist ziemlich unkompliziert:

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

Dann starte es:

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

Am einfachsten geht es mit curl . Es kann einige Sekunden dauern, bis es startet, also keine Panik, wenn Sie zuerst keine Antwort erhalten.

curl localhost:9200

Beispielantwort:

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

Werkzeuge für die Entwicklung einrichten

Wenn Sie mit ElasticSearch (ES) beginnen, ist es möglicherweise sinnvoll, ein grafisches Werkzeug zu haben, mit dem Sie Ihre Daten untersuchen können. Ein Plugin namens elasticsearch-head macht genau das. Gehen Sie folgendermaßen vor, um es zu installieren:

  • Finden Sie heraus, in welchem ​​Ordner ES installiert ist: ls -l $(which elasticsearch)
  • cd in diesen Ordner und führen Sie das Plugin-Installations-Binärprogramm aus: elasticsearch/bin/plugin -install mobz/elasticsearch-head
  • Öffnen Sie http://localhost:9200/_plugin/head/ in Ihrem Browser

Wenn alles wie erwartet funktioniert, sollten Sie eine nette GUI sehen, auf der Sie Ihre Daten untersuchen können.

Einführung

ElasticSearch verfügt über eine gut dokumentierte JSON-API, aber Sie möchten wahrscheinlich einige Bibliotheken verwenden, die das für Sie erledigen:

  • Elasticsearch - der offizielle Low-Level-Wrapper für die HTTP-API

  • Elasticsearch-rails - die offizielle Elasticsearch-rails Rails-Integration, mit der Sie Ihre Rails-Modelle mit ElasticSearch mithilfe des ActiveRecord- oder Repository-Musters verbinden können

  • Chewy - Eine alternative, nicht offizielle High-End-Rails-Integration, die sehr beliebt ist und eine bessere Dokumentation bietet

Verwenden wir die erste Option zum Testen der Verbindung:

gem install elasticsearch

Starten Sie dann das Ruby-Terminal und probieren Sie es aus:

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'

Suchkick

Wenn Sie schnell elasticsearch einrichten möchten, können Sie den searchkick gem verwenden:

gem 'searchkick'

Fügen Sie den Modellen, nach denen Sie suchen möchten, einen Suchkick hinzu.

class Product < ActiveRecord::Base
  searchkick
end

Fügen Sie dem Suchindex Daten hinzu.

Product.reindex

Und zur Abfrage verwenden Sie:

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

Ziemlich schnell, keine Elasticsearch-Kenntnisse erforderlich ;-)

Weitere Informationen finden Sie hier: https://github.com/ankane/searchkick



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow