Sök…


Installation och testning

Det första du vill göra för lokal utveckling är att installera ElasticSearch i din maskin och testa den för att se om den körs. Det kräver att Java är installerad. Installationen är ganska enkel:

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

Starta sedan:

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

För att testa det är det enklaste sättet med curl . Det kan ta några sekunder innan det börjar, så få inte panik om du inte får något svar först.

curl localhost:9200

Exempel svar:

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

Ställa in verktyg för utveckling

När du kommer igång med ElasticSearch (ES) kan det vara bra att ha ett grafiskt verktyg som hjälper dig att utforska dina data. En plugin som heter elasticsearch-head gör just det. Så här installerar du det:

  • Ta reda på i vilken mapp ES är installerad: ls -l $(which elasticsearch)
  • cd in i den här mappen och kör plugininstallationen binär: elasticsearch/bin/plugin -install mobz/elasticsearch-head
  • Öppna http://localhost:9200/_plugin/head/ i din webbläsare

Om allt fungerade som förväntat bör du se ett trevligt GUI där du kan utforska dina data.

Introduktion

ElasticSearch har ett väl dokumenterat JSON API, men du kommer förmodligen att vilja använda några bibliotek som hanterar det åt dig:

  • Elasticsearch - det officiella lågnivåomslaget för HTTP API

  • Elasticsearch-rails - den officiella Rails-integrationen på hög nivå som hjälper dig att ansluta dina Rails-modeller med ElasticSearch med antingen ActiveRecord- eller Repository-mönster

  • Chewy - En alternativ, icke-officiell integrering på hög nivå Rails som är mycket populär och utan tvekan har bättre dokumentation

Låt oss använda det första alternativet för att testa anslutningen:

gem install elasticsearch

Sedan skjut upp rubinterminalen och prova:

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

Om du vill konfigurera snabbt elasticsearch kan du använda searchkick-pärla:

gem 'searchkick'

Lägg till sökkick till modeller du vill söka.

class Product < ActiveRecord::Base
  searchkick
end

Lägg till data i sökindexet.

Product.reindex

Och för att fråga, använd:

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

Ganska snabb, elastikundersökningskunskap krävs inte ;-)

Mer information här: https://github.com/ankane/searchkick



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow