Peter Karman > Search-OpenSearch-Server-0.26 > Search::OpenSearch::Server::Catalyst

Download:
Search-OpenSearch-Server-0.26.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
View/Report Bugs
Module Version: 0.26   Source   Latest Release: Search-OpenSearch-Server-0.300

NAME ^

Search::OpenSearch::Server::Catalyst - serve OpenSearch results with Catalyst

SYNOPSIS ^

 package MyApp::Controller::API;
 use strict;
 use warnings;
 use base 'Search::OpenSearch::Server::Catalyst';
 use MyStats;   # acts like a Dezi::Stats subclass
 
 __PACKAGE__->config(
    engine_config = {
        type   => 'Lucy',
        index  => ['path/to/your/index'],
        facets => {
            names       => [qw( topics people places orgs author )],
            sample_size => 10_000,
        },
        fields => [qw( topics people places orgs author )],
    },
    stats_logger => MyStats->new(),
 );

 1;

 # now you can:
 # GET  /api/search
 # POST /api/foo/bar

DESCRIPTION ^

Search::OpenSearch::Server::Catalyst is a Catalyst::Constroller subclass.

METHODS ^

This class inherits from Search::OpenSearch::Server and Catalyst::Controller. Only new or overridden methods are documented here.

new( params )

Inherits from Catalyst::Controller. params can be:

engine

A Search::OpenSearch::Engine instance. Either this or engine_config is required.

engine_config

A hashref passed to the Search::OpenSearch->engine method. Either this or engine is required.

stats_logger

An object that implements at least one method called log. See Dezi::Stats for example.

default( ctx )

This method registers a URL action in the controller namespace.

The default() action passes the ctx and any other path args to process_request(). Override this method to control what your addressable URL(s) look like.

process_request( ctx, args )

Process the incoming request and create a response. The algorithm is, briefly:

 GET -> do_search()
 POST, PUT, DELETE -> do_rest_api()

args is an array joined with / to create an actionable path. If that path is the string search or is empty, then do_search() is triggered on GET requests. The path is ignored for all non-GET requests.

log( msg, level )

Passes msg on to the app $ctx->log method. level defaults to debug and will only be passed to $ctx->log if $ctx->debug is true.

setup_engine

Instantiates the Search::OpenSearch::Engine, if necessary, using the values set in engine_config(). Called within new().

AUTHOR ^

Peter Karman, <karman at cpan.org>

BUGS ^

Please report any bugs or feature requests to bug-search-opensearch-server at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Search-OpenSearch-Server. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT ^

You can find documentation for this module with the perldoc command.

    perldoc Search::OpenSearch::Server::Catalyst

You can also look for information at:

COPYRIGHT & LICENSE ^

Copyright 2012 Peter Karman.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.

syntax highlighting: