Ho creato un modulo Play Framework che eseguirà Elastic Search su Heroku utilizzando S3 per mantenere lo stato. Non c'è bisogno di un'istanza EC2 - si paga solo per il costo dei dati S3 che è molto meno - principalmente transazioni IO. Utilizza il gateway ElasticSearch S3 (meccanismo di persistenza).
È possibile utilizzarlo estendendo l'applicazione Play per creare endpoint specifici per le funzioni di ricerca oppure, se lo si desidera, è possibile accedere direttamente all'API REST di ElasticSearch (per impostazione predefinita lo espone sulla route http://yourapp.com/es). C'è un sistema di autenticazione molto semplice per proteggerlo.
L'unico svantaggio di questa configurazione è che il banco prova può impiegare un po 'di tempo per avviarsi. Quindi, non funzionerà bene se lasci che il dinamometro scorra dall'inattività - e potresti essere inchiodato per le tariffe di trasferimento dati S3 se ciò accade molto e il tuo indice è enorme. Il lato positivo è che controlli i tuoi dati ed è economico economico a buon mercato. Un altro avvertimento: dovrai stare attento a mantenere i limiti di memoria di un dyno Heroku. Detto questo, abbiamo avuto funzioni di completamento automatico della ricerca full text che lavorano su diversi indici senza problemi.
Potrebbe essere possibile creare un modulo simile in Rails utilizzando JRuby per parlare con l'API Java di ElasticSearch. Il mio principale contributo qui è stato capire come eseguirlo all'interno di un altro framework web - dal momento che Play utilizza anche Netty, è stato piuttosto semplice incorporarlo. I test delle prestazioni rispetto a un cluster EC2 + Tiro (Rails gem per ElasticSearch) hanno mostrato che l'approccio Heroku/Play eseguiva ricerche più veloci.
Il progetto è qui: https://github.com/carchrae/elastic-play - Sarei felice di aiutare le persone a installarlo - dovrebbe essere abbastanza indolore.
fonte
2012-11-05 11:37:01
Davvero fantastico! Stavo aspettando che qualcuno uscisse con un componente aggiuntivo per questo. Dovrò provare e implementare questo –
Ancora in versione beta pubblica al momento della stesura di questo documento; domande e feedback sono ben accetti! Colpiscimi tramite [@bonsaisearch] (http: // twitter.com/bonsaisearch) su Twitter, o [email protected] :-) –
Questo è promettente! –