Ricerca…


Installazione e test

La prima cosa che vuoi fare per lo sviluppo locale è installare ElasticSearch nel tuo computer e testarlo per vedere se è in esecuzione. Richiede l'installazione di Java. L'installazione è piuttosto semplice:

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

Quindi avvialo:

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

Per provarlo, il modo più semplice è con curl . Potrebbero essere necessari alcuni secondi per l'avvio, quindi non farti prendere dal panico se non ricevi alcuna risposta all'inizio.

curl localhost:9200

Risposta di esempio:

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

Impostazione di strumenti per lo sviluppo

Quando si inizia con ElasticSearch (ES), potrebbe essere utile disporre di uno strumento grafico che consente di esplorare i dati. Un plugin chiamato elasticsearch-head fa proprio questo. Per installarlo, fai quanto segue:

  • Scopri in quale cartella ES è installato: ls -l $(which elasticsearch)
  • cd in questa cartella ed esegui l'installazione plugin binary: elasticsearch/bin/plugin -install mobz/elasticsearch-head
  • Aprire http://localhost:9200/_plugin/head/ nel browser

Se tutto ha funzionato come previsto, dovresti vedere una bella GUI in cui esplorare i tuoi dati.

introduzione

ElasticSearch ha un'API JSON ben documentata, ma probabilmente vorrai utilizzare alcune librerie che gestiscono ciò per te:

  • Elasticsearch : il wrapper ufficiale di basso livello per l'API HTTP

  • Elasticsearch-rails : l'integrazione ufficiale di rails di alto livello che ti aiuta a connettere i tuoi modelli Rails con ElasticSearch usando il pattern ActiveRecord o Repository

  • Chewy - Chewy Rails alternativa e non ufficiale di alto livello che è molto popolare e probabilmente ha una documentazione migliore

Usiamo la prima opzione per testare la connessione:

gem install elasticsearch

Quindi accendi il terminale rubino e provalo:

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

Se vuoi impostare rapidamente elasticsearch puoi utilizzare la searchkick gem:

gem 'searchkick'

Aggiungi searchkick ai modelli che vuoi cercare.

class Product < ActiveRecord::Base
  searchkick
end

Aggiungi dati all'indice di ricerca.

Product.reindex

E per interrogare, usa:

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

Abbastanza veloce, la conoscenza elasticsearch non è richiesta ;-)

Maggiori informazioni qui: https://github.com/ankane/searchkick



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow