NAME
DBIx::Class::Indexed - Index data via external indexing facilities.
SYNOPSIS
package Foo;
use base qw( DBIx::Class );
__PACKAGE__->load_components( qw( Indexed Core ) );
__PACKAGE__->set_indexer( 'WebService::Lucene', {
server => '
http://localhost:8080/lucene/',
index => 'stuff',
});
__PACKAGE__->add_columns(
foo_id => {
data_type => 'integer',
is_auto_increment => 1,
},
name => {
data_type => 'varchar',
size => 256,
indexed => 1,
},
description => {
data_type => 'text',
indexed => 1,
},
);
ACCESSORS
indexer_package( [ $indexer ] )
Sets which indexer will be responsible for indexing this class' data.
Corresponds to the package name after the DBIx::Class::Indexer prefix.
indexer_connection_info( [ \%info ] )
Sets the extra information passed to the indexer on instantiation.
index_on_insert
Determines whether or not DBIx::Class::Indexed will index the document
when it is inserted.
index_on_update
Determines whether or not DBIx::Class::Indexed will index the document
when it is updated.
index_on_delete
Determines whether or not DBIx::Class::Indexed will remove the document
when it is deleted.
METHODS
indexer( )
Accessor for the indexer object; lazy loaded.
set_indexer( $name [, \%connection_info ] )
Set the indexer information. Connection information is stored in the
"indexer_connection_info" accessor and the package name is stored in
"indexer_package".
insert( )
Sends the object to the indexer's "insert" method, if "index_on_insert"
is true.
update( )
Sends the object to the indexer's "update" method, if "index_on_update"
is true.
delete( )
Sends the object to the indexer's "delete" method, if "index_on_delete"
is true.
register_column ( $column, \%info )
Overrides DBIx::Class's "register_column". If %info contains the key
'indexed', calls "register_field".
add_index_fields ( @fields )
Behaves similarly to DBIx::Class's "add_columns". Calls "register_field"
underneath.
register_field( $field, \%info )
Registers a field as indexed.
AUTHORS
* Adam Paynter <
[email protected]>
* Brian Cassidy <
[email protected]>
COPYRIGHT AND LICENSE
Copyright 2006 by Adam Paynter, 2007-2011 by Brian Cassidy
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.