NAME
Catalyst::Model::Search::ElasticSearch
SYNOPSIS
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 );
}
WARNING
This is in very alpha stages. More testing and production use are coming up, but be warned until then.
servers
A list of servers to connect to
transport
The transport to use to interact with the ElasticSearch API. See https://metacpan.org/module/ElasticSearch#Transport-Backends for options.
_additional_opts
Stores other key/value pairs to pass to ElasticSearch
_es
The ElasticSearch object.