Catalyst::Model::Search::ElasticSearch
package My::App; use strict; use warnings; use Catalyst;; our $VERSION = '0.01'; __PACKAGE__->config( name => 'Test::App', 'Model::Search' => { transport => 'http', servers => 'localhost:9200', timeout => 30, max_requests => 10_000 } ); __PACKAGE__->setup; package My::App::Model::Search; use Moose; use namespace::autoclean; extends 'Catalyst::Model::Search::ElasticSearch'; __PACKAGE__->meta->make_immutable; 1; package My::App::Controller::Root; use base 'Catalyst::Controller'; __PACKAGE__->config(namespace => ''); sub search : Local { my ($self, $c) = @_; my $params = $c->req->params; my $search = $c->model('Search'); my $results = $search->search( index => 'test', type => 'test', query => { term => { schpongle => $params->{'q'} } } ); $c->stash( results => $results ); }
This is in very alpha stages. More testing and production use are coming up, but be warned until then.
A list of servers to connect to
The transport to use to interact with the ElasticSearch API. See https://metacpan.org/module/ElasticSearch#Transport-Backends for options.
Stores other key/value pairs to pass to ElasticSearch
The ElasticSearch object.
The Catalyst Advent article on integrating ElasticSearch into your app: http://www.catalystframework.org/calendar/2010/2
To install Catalyst::Model::Search::ElasticSearch, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Catalyst::Model::Search::ElasticSearch
CPAN shell
perl -MCPAN -e shell install Catalyst::Model::Search::ElasticSearch
For more information on module installation, please visit the detailed CPAN module installation guide.