KSx::Index::ByteBufDocWriter man page on Fedora

Man page or keyword search:  
man Server   31170 pages
apropos Keyword Search (all sections)
Output format
Fedora logo
[printable version]

KSx::Index::ByteBufDocUsereContributed Perl DocKSx::Index::ByteBufDocWriter(3)

NAME
       KSx::Index::ByteBufDocWriter - Write a Doc as a fixed-width byte array.

SYNOPSIS
       Create an Architecture subclass which overrides register_doc_writer()
       and register_doc_reader():

	   package MyArchitecture;
	   use base qw( KinoSearch::Plan::Architecture );
	   use KSx::Index::ByteBufDocReader;
	   use KSx::Index::ByteBufDocWriter;

	   sub register_doc_writer {
	       my ( $self, $seg_writer ) = @_;
	       my $doc_writer = KSx::Index::ByteBufDocWriter->new(
		   width      => 16,
		   field      => 'value',
		   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::ByteBufDocReader->new(
		   width    => 16,
		   field    => 'value',
		   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 { MyArchitecture->new }

       Proceed as normal in your indexer app, making sure that every supplied
       document supplies a valid value for the field in question:

	   $indexer->add_doc({
	       title   => $title,
	       content => $content,
	       id      => $id,	    # <---- Must meet spec.
	   });

       Then, in your search app:

	   my $searcher = KinoSearch::Search::IndexSearcher->new(
	       index => '/path/to/index',
	   );
	   my $hits = $searcher->hits( query => $query );
	   while ( my $id = $hits->next ) {
	       my $real_doc = $external_document_source->fetch( $doc->{value} );
	       ...
	   }

DESCRIPTION
       This is a proof-of-concept class to demonstrate alternate
       implementations for fetching documents.	It is unsupported.

COPYRIGHT AND LICENSE
       Copyright 2009-2010 Marvin Humphrey

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

perl v5.14.1			  2011-06-20   KSx::Index::ByteBufDocWriter(3)
[top]

List of man pages available for Fedora

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net