Buscar..


Instalación y pruebas

Lo primero que desea hacer para el desarrollo local es instalar ElasticSearch en su máquina y probarlo para ver si se está ejecutando. Requiere que Java esté instalado. La instalación es bastante sencilla:

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

Entonces empieza:

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

Para probarlo, la forma más fácil es con curl . Puede tardar unos segundos en comenzar, así que no se asuste si no recibe ninguna respuesta al principio.

curl localhost:9200

Ejemplo de respuesta:

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

Configuración de herramientas para el desarrollo.

Cuando esté comenzando con ElasticSearch (ES), puede ser bueno tener una herramienta gráfica que lo ayude a explorar sus datos. Un plugin llamado elasticsearch-head hace justamente eso. Para instalarlo, haga lo siguiente:

  • Averigüe en qué carpeta está instalada ES: ls -l $(which elasticsearch)
  • cd en esta carpeta y ejecute el binario de instalación del complemento: elasticsearch/bin/plugin -install mobz/elasticsearch-head
  • Abra http://localhost:9200/_plugin/head/ en su navegador

Si todo funcionó como se esperaba, debería ver una buena interfaz gráfica de usuario donde puede explorar sus datos.

Introducción

ElasticSearch tiene una API JSON bien documentada, pero probablemente querrá usar algunas bibliotecas que lo manejen por usted:

  • Elasticsearch - el envoltorio oficial de bajo nivel para la API HTTP

  • Elasticsearch-rails : la integración oficial de alto nivel de Rails que le ayuda a conectar sus modelos de Rails con ElasticSearch utilizando ActiveRecord o Repository pattern.

  • Chewy : una integración de Rails de alto nivel alternativa y no oficial que es muy popular y posiblemente tiene mejor documentación

Usemos la primera opción para probar la conexión:

gem install elasticsearch

Luego enciende la terminal de rubíes y pruébalo:

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

Si quieres configurar rápidamente elasticsearch puedes usar la gema de búsqueda:

gem 'searchkick'

Añadir searchkick a los modelos que desea buscar.

class Product < ActiveRecord::Base
  searchkick
end

Añadir datos al índice de búsqueda.

Product.reindex

Y para consultar, usar:

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

Bastante rápido, no se requiere conocimiento de elasticsearch ;-)

Más información aquí: https://github.com/ankane/searchkick



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow