Szukaj…


Instalacja i testowanie

Pierwszą rzeczą, którą chcesz zrobić dla rozwoju lokalnego, jest zainstalowanie ElasticSearch na swoim komputerze i przetestowanie go, aby sprawdzić, czy jest uruchomiony. Wymaga zainstalowania Java. Instalacja jest dość prosta:

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

Następnie uruchom:

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

Aby go przetestować, najprościej jest z curl . Uruchomienie może potrwać kilka sekund, więc nie panikuj, jeśli na początku nie otrzymasz żadnej odpowiedzi.

curl localhost:9200

Przykładowa odpowiedź:

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

Konfigurowanie narzędzi do programowania

Kiedy zaczynasz korzystać z ElasticSearch (ES), warto mieć narzędzie graficzne, które pomoże ci eksplorować dane. Właśnie to robi wtyczka o nazwie elasticsearch-head . Aby go zainstalować, wykonaj następujące czynności:

  • Dowiedz się, w którym folderze ES jest zainstalowany: ls -l $(which elasticsearch)
  • cd w tym folderze i uruchom plik instalacyjny wtyczki: elasticsearch/bin/plugin -install mobz/elasticsearch-head
  • Otwórz http://localhost:9200/_plugin/head/ w przeglądarce

Jeśli wszystko działało zgodnie z oczekiwaniami, powinieneś zobaczyć ładny GUI, w którym możesz eksplorować swoje dane.

Wprowadzenie

ElasticSearch ma dobrze udokumentowane API JSON, ale prawdopodobnie będziesz chciał skorzystać z niektórych bibliotek, które to obsługują:

  • Elasticsearch - oficjalne opakowanie niskopoziomowe dla API HTTP

  • Elasticsearch-rails - oficjalna integracja Railsów wysokiego poziomu, która pomaga łączyć modele Railsów z ElasticSearch przy użyciu ActiveRecord lub wzorca repozytorium

  • Chewy - Alternatywna, nieoficjalna integracja Railsów na wysokim poziomie, która jest bardzo popularna i zapewne ma lepszą dokumentację

Użyjmy pierwszej opcji do testowania połączenia:

gem install elasticsearch

Następnie uruchom terminal rubinowy i wypróbuj:

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

Jeśli chcesz szybko skonfigurować wyszukiwanie elastyczne, możesz użyć klejnotu searchkick:

gem 'searchkick'

Dodaj SearchKick do modeli, które chcesz wyszukać.

class Product < ActiveRecord::Base
  searchkick
end

Dodaj dane do indeksu wyszukiwania.

Product.reindex

I do zapytania użyj:

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

Dość szybka, elastyczna wyszukiwarka wiedzy nie jest wymagana ;-)

Więcej informacji tutaj: https://github.com/ankane/searchkick



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow