12
votes

Comment utiliser Elasticsearch sur Heroku

Je viens de finir de regarder les épisodes de Railscasts sur Elasticsearch . Je suis également allé de l'avant et je l'ai mis en œuvre dans My Rails Application (3.1) et tout fonctionne bien. Comment je veux déployer mon application à Heroku, mais je ne suis pas sûr comment obtenir Elasticsicsearch Travailler sur Heroku (spécifiquement sur une pile de cèdre).

Toute aide serait grandement appréciée!


0 commentaires

5 Réponses :


0
votes

C'était exactement ma première pensée quand j'ai regardé les rails mais malheureusement, c'est un démon Java qu'il fonctionne comme ce qui n'est pas possible sur Heroku.


2 commentaires

Eh bien c'est assez déprimant. Il semble que Elasticseearch aurait été une excellente alternative à ce que j'utilise maintenant (Solr / Sunspot).


aurait probablement la peine d'être demandé avant de mettre en œuvre. Heroku n'est pas vraiment un environnement traditionnel :)



0
votes

De toute façon, vous ne pouvez pas l'exécuter sur un Heroku Dyno normal car il faudrait enregistrer des données sur un disque qui n'est pas persisté sur Heroku. Vous devez attendre un add-on ou l'organiser ailleurs.


0 commentaires

14
votes

Vous pouvez très facilement [et librement ;-)] Rouler votre propre serveur ElasticseSearch sur Amazon EC2 et simplement vous connecter avec votre application. C'est ce que nous faisons, et ça fonctionne bien ...

http://www.elasticssearch.org/Tutorials/elasticsearch-on-ec2 /


1 commentaires

Voici un autre lien vers une élasticalearch sur le tutoriel EC2.



12
votes

Heroku soutient désormais Elasticsearch avec l'ajout de Bonsai. https://devcenter.heroku.com/articles/bonsai


4 commentaires

Très cool! J'attendais que quelqu'un sort avec un add-on pour cela. Je vais devoir essayer de mettre en œuvre cela


Toujours en version bêta publique comme de cet écriture; Les questions et les commentaires sont les bienvenus! Frappez-moi via @bonsaisearch sur Twitter, ou info@onemorecloud.com :-)


FYI, Bonsai, comme Searchbox et trouvé sur Heroku, sont toutes en version bêta et ont des options limitées. Bonsai propose uniquement un shard, des documents de recherchebox 10k.


Suivi de la postérité, Bonsai lancé dans la production en janvier '13 avec un certain nombre d'options de plan.



3
votes

J'ai créé un module de cadre de lecture qui exécutera une recherche élastique sur Heroku en utilisant S3 pour persister l'état. Pas besoin d'une instance EC2 - vous ne payez que le coût des données S3 qui sont beaucoup moins - principalement des transactions IO. Il utilise la passerelle ElasticsSearch S3 (Mécanisme de persistance).

Vous pouvez l'utiliser soit en prolongeant l'application de lecture pour créer des points d'extrémité spécifiques pour vos fonctions de recherche, soit si vous le souhaitez, vous pouvez accéder directement à l'API d'ELASTICICEARCH SECT API (par défaut, il l'expose sur l'itinéraire http://yourapp.com/es ). Il existe un système d'authentification très basique pour le sécuriser.

Le seul inconvénient de cette configuration est que le dyno peut prendre un certain temps pour faire tourner. Ainsi, cela ne fonctionnera pas bien si vous laissez le dyno tourner à partir de l'inactivité - et vous pouvez être cloué pour les frais de transfert de données S3 si cela arrive beaucoup et votre index est énorme. L'avantage est que vous contrôlez vos propres données et c'est pas cher pas cher pas cher. Un autre mot d'avertissement - vous devrez faire attention à garder à l'intérieur des limites de mémoire d'un Heroku Dyno. Cela dit, nous avons eu une recherche de texte complète des fonctions d'autocomplete travaillant sur plusieurs index sans problèmes.

Vous pourriez peut-être construire un module similaire dans des rails à l'aide de Jruby pour parler à l'API Elasticsearch Java. Ma contribution principale ici consistait à comprendre comment l'exécuter dans un autre cadre Web - puisque la pièce utilise également Netty, il était assez facile de l'intégrer. Tests de performance comparés à un cluster + pneus EC2 (Rails Gem pour Elasticssearch) ont montré que l'approche Heroku / Play a effectué des recherches plus rapides.

Le projet est ici: https://github.com/carchrae/elastic-play - Je serais heureux d'aider les gens à la configurer - il devrait être assez indolore.


0 commentaires