The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Catalyst::Model::Search::ElasticSearch - A simple Catalyst model to interface with Search::Elasticsearch

VERSION

version 1.142550

SYNOPSIS

    package My::App;
    use strict;
    use warnings;

    use Catalyst;

    our $VERSION = '0.01';
    __PACKAGE__->config(
      name            => 'Test::App',
      'Model::Search' => {
        nodes           => 'localhost:9200',
        request_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',
        body  => { 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.

CONFIGURATION PARAMETERS AND ATTRIBUTES

nodes

A list of nodes to connect to.

transport

The transport to use to interact with the Elasticsearch API. See Search::Elasticsearch::Transport for options.

_additional_opts

Stores other key/value pairs to pass to Search::Elasticsearch.

_es

The Search::Elasticsearch object.

SEE ALSO

AUTHORS

  • Devin Austin <dhoss@cpan.org>

  • Manfred Stock <mstock@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by Devin Austin.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.