NAME
DBIx::Class::Indexer::WebService::Dezi - An indexer for Dezi/Lucy.
VERSION
Version 0.08
SYNOPSIS
This module was inspired (and borrowed some) by DBIx::Class::Indexer::WebService::Solr. In fact it uses DBIx::Class::Indexer as its abstract class. This indexer allows one to use a Dezi::Client to update the index on "insert", "update", or "delete".
package MyApp::Schema::Foo; 
use base 'DBIx::Class';
__PACKAGE__->load_components( qw[ Indexed ] );
__PACKAGE__->set_indexer( 'WebService::Dezi', { server => 'http://localhost:5000', content_type => 'application/json' } );
__PACKAGE__->table('person');
__PACKAGE__->add_columns(
    person_id => {
        data_type       => 'varchar',
        size            => '36',
        is_nullable     => 0,
    },
    name => {
        data_type       => 'varchar',
        is_nullable     => 0,
        indexed         => 1 
    },
    age => {
        data_type       => 'integer',
        is_nullable     => 0,
    },
    image_path => {
        data_type       => 'varchar',
        size            => '128',
        indexed         => { is_binary => 1, base64_encode => 1 },
    },
    email => {
        data_type       => 'varchar',
        size            => '128',
    },
    created => {
        data_type       => 'timestamp',
        set_on_create   => 1,
        is_nullable     => 0,
    },
);
CONFIG
indexed
Can be set to 1 or contain a hashref.
is_binary
Flags an indexied field as a binary pointer. Will attempt to slurp the contents for indexing.
base64_encode
A flag that will make a is_binary indexed field converted to base64. It is worth noting that highlighting needs to be turned off in the dezi config for this to properly index.
ATTRIBUTES
connect_info
Connect info parameters.
content_type
Connect info parameters.
disabled
Will disable any calls to Dezi::Client and indexing. This is useful in preventing exceptions if the Dezi server is temporarily down.
source
Source object
_dezi
Internal dezi object.
_field_prep
Used for noramalization of fields.
ATTRIBUTES
as_document( $self, $object )
Handles the insert operation. Generates a XML or JSON document that will be indexed by the dezi service.
BUILD( $self )
Creates a new Dezi::Client object and normalizes the fields to be indexed.
update_or_create_document( $object )
Handles the insert operation.
value_for_field( $object, $key )
Uses the indexed fields information to determine how to get the values for $key out of $object.
The logic here was borrowed from DBIx::Class::Indexer::WebService::Solr
setup_fields( $source )
Normalizes the index fields so they all have hashref members with an optional boost key.
delete( $object )
Handles the delete operation.
insert( $object )
Handles the insert operation.
update( $object )
Handles the update operation.
AUTHOR
Logan Bell, <loganbell at gmail.com>
BUGS
Please report any bugs or feature requests to bug-dbix-class-indexer-webservice-dezi at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=DBIx-Class-Indexer-WebService-Dezi. 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 DBIx::Class::Indexer::WebService::Dezi
You can also look for information at:
RT: CPAN's request tracker (report bugs here)
http://rt.cpan.org/NoAuth/Bugs.html?Dist=DBIx-Class-Indexer-WebService-Dezi
AnnoCPAN: Annotated CPAN documentation
CPAN Ratings
http://cpanratings.perl.org/d/DBIx-Class-Indexer-WebService-Dezi
Search CPAN
http://search.cpan.org/dist/DBIx-Class-Indexer-WebService-Dezi/
ACKNOWLEDGEMENTS
LICENSE AND COPYRIGHT
Copyright 2012 Logan Bell.
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.