10

Acabo de ver los episodios de ambos Railscasts en Elasticsearch. También me adelanté y lo implementé en mi aplicación Rails (3.1) y todo está funcionando muy bien. Cómo quiero implementar mi aplicación en Heroku pero no estoy seguro de cómo hacer que Elasticsearch trabaje en Heroku (específicamente en una pila de cedro).Cómo usar Elasticsearch en Heroku

¡Cualquier ayuda sería muy apreciada!

Respuesta

10

Heroku ahora es compatible con el Elasticsearch Bonsai add on. https://devcenter.heroku.com/articles/bonsai

+0

¡Muy bueno! Estaba esperando que alguien salga con un complemento para esto. Tendré que intentar implementar este –

+1

Aún en versión beta pública a partir de este escrito; preguntas y comentarios son bienvenidos! Dale me gusta a través de [@bonsaisearch] (http: // twitter.com/bonsaisearch) en Twitter, o [email protected] :-) –

+0

¡Eso es prometedor! –

0

Eso era exactamente lo primero que pensé cuando vi el Railscast pero lamentablemente es un demonio de Java que se ejecuta como el que no es posible en Heroku.

+0

Bueno, eso es bastante deprimente. Parece que ElasticSearch podría haber sido una gran alternativa a lo que estoy usando ahora (Solr/Sunspot). –

+1

probablemente habría valido la pena preguntar antes de implementarlo. Heroku no es exactamente un entorno tradicional :) –

0

De todos modos no se puede ejecutar en un banco de pruebas normales Heroku, ya que tendría que guardar los datos en el disco que no se persistió en Heroku. Necesita esperar un Add-on o alojarlo en otro lugar.

11

Puede muy fácilmente [y libremente ;-)] rodar su propio servidor Elasticsearch en Amazon EC2, y simplemente conectarse a él con su aplicación. Esto es lo que estamos haciendo, y está funcionando muy bien ...

http://www.elasticsearch.org/tutorials/elasticsearch-on-ec2/

+0

gran fuente - thx 4 compartiendo –

+3

Enlace obsoleto, ya no funciona. – Micah

+0

[Aquí hay] (http://chrissimpson.co.uk/using-elasticsearch-on-amazon-ec2.html) otro enlace a un tutorial de Elasticsearch en EC2. –

2

he creado un módulo de marco de reproducción que se ejecutará elástico Buscar en Heroku utilizando S3 que persista el estado. No es necesario contar con una instancia EC2, solo paga el costo de los datos S3, que es mucho menor, principalmente transacciones IO. Utiliza la pasarela ElasticSearch S3 (mecanismo de persistencia).

Puede usarlo extendiendo la aplicación Play para crear puntos finales específicos para sus funciones de búsqueda o, si lo desea, puede acceder directamente a la API REST de ElasticSearch (por defecto la expone en la ruta http://yourapp.com/es). Hay un sistema de autenticación muy básico para asegurarlo.

El único inconveniente de esta configuración es que el dinamómetro puede tardar un poco en girar. Por lo tanto, no funcionará bien si dejas que el dinamómetro baje de la inactividad, y es posible que te apliquen cargos por transferencia de datos S3 si eso sucede mucho y tu índice es enorme. Lo bueno es que controlas tus propios datos y es barato y barato. Otra palabra de advertencia: deberá tener cuidado de mantenerse dentro de los límites de memoria de un dinamómetro Heroku. Dicho esto, tuvimos funciones de autocompletado de búsqueda de texto completo trabajando en varios índices sin problemas.

Usted puede ser capaz de construir un módulo similar en Rails usando JRuby a hablar con la API de Java Elasticsearch. Mi principal contribución aquí fue descubrir cómo ejecutarlo dentro de otro framework web, ya que Play también usa Netty, fue bastante fácil de integrar. Las pruebas de rendimiento en comparación con un clúster EC2 + Neumático (gema Rails para ElasticSearch) mostraron que el enfoque Heroku/Play realizó búsquedas más rápidas.

El proyecto está aquí: https://github.com/carchrae/elastic-play - Estaría encantado de ayudar a las personas a configurarlo, debería ser bastante sencillo.