Marvin Humphrey
and 1 contributors

NAME

KinoSearch::Plan::Architecture - Configure major components of an index.

DEPRECATED

The KinoSearch code base has been assimilated by the Apache Lucy project. The "KinoSearch" namespace has been deprecated, but development continues under our new name at our new home: http://lucy.apache.org/

SYNOPSIS

    package MyArchitecture;
    use base qw( KinoSearch::Plan::Architecture );

    use KSx::Index::ZlibDocWriter;
    use KSx::Index::ZlibDocReader;

    sub register_doc_writer {
        my ( $self, $seg_writer ) = @_; 
        my $doc_writer = KSx::Index::ZlibDocWriter->new(
            snapshot   => $seg_writer->get_snapshot,
            segment    => $seg_writer->get_segment,
            polyreader => $seg_writer->get_polyreader,
        );  
        $seg_writer->register(
            api       => "KinoSearch::Index::DocReader",
            component => $doc_writer,
        );  
        $seg_writer->add_writer($doc_writer);
    }

    sub register_doc_reader {
        my ( $self, $seg_reader ) = @_; 
        my $doc_reader = KSx::Index::ZlibDocReader->new(
            schema   => $seg_reader->get_schema,
            folder   => $seg_reader->get_folder,
            segments => $seg_reader->get_segments,
            seg_tick => $seg_reader->get_seg_tick,
            snapshot => $seg_reader->get_snapshot,
        );  
        $seg_reader->register(
            api       => 'KinoSearch::Index::DocReader',
            component => $doc_reader,
        );  
    }
 
    package MySchema;
    use base qw( KinoSearch::Plan::Schema );
    
    sub architecture { 
        shift;
        return MyArchitecture->new(@_); 
    }

DESCRIPTION

By default, a KinoSearch index consists of several main parts: lexicon, postings, stored documents, deletions, and highlight data. The readers and writers for that data are spawned by Architecture. Each component operates at the segment level; Architecture's factory methods are used to build up SegWriter and SegReader.

CONSTRUCTORS

new()

    my $arch = KinoSearch::Plan::Architecture->new;

Constructor. Takes no arguments.

METHODS

register_doc_writer(writer)

Spawn a DataWriter and register() it with the supplied SegWriter, adding it to the SegWriter's writer stack.

  • writer - A SegWriter.

register_doc_reader(reader)

Spawn a DocReader and register() it with the supplied SegReader.

  • reader - A SegReader.

INHERITANCE

KinoSearch::Plan::Architecture isa KinoSearch::Object::Obj.

COPYRIGHT AND LICENSE

Copyright 2005-2011 Marvin Humphrey

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