-
-
27 Feb 2018 08:40:23 UTC
- Distribution: Lucy
- Module version: 0.006002
- Source (raw)
- Browse (raw)
- Changes
- Homepage
- How to Contribute
- Clone repository
- Issues
- Testers (1248 / 3 / 7)
- Kwalitee
Bus factor: 1- License: apache_2_0
- Perl: v5.8.3
- Activity
24 month- Tools
- Download (1.12MB)
- MetaCPAN Explorer
- Permissions
- Subscribe to distribution
- Permalinks
- This version
- Latest version
and 1 contributors- The Apache Lucy Project <dev at lucy dot apache dot org>
- Dependencies
- Clownfish
- and possibly others
- Reverse dependencies
- CPAN Testers List
- Dependency graph
NAME
LucyX::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( Lucy::Plan::Architecture ); use LucyX::Index::ByteBufDocReader; use LucyX::Index::ByteBufDocWriter; sub register_doc_writer { my ( $self, $seg_writer ) = @_; my $doc_writer = LucyX::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 => "Lucy::Index::DocReader", component => $doc_writer, ); $seg_writer->add_writer($doc_writer); } sub register_doc_reader { my ( $self, $seg_reader ) = @_; my $doc_reader = LucyX::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 => 'Lucy::Index::DocReader', component => $doc_reader, ); } package MySchema; use base qw( Lucy::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 = Lucy::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.
Module Install Instructions
To install Lucy, copy and paste the appropriate command in to your terminal.
cpanm Lucy
perl -MCPAN -e shell install Lucy
For more information on module installation, please visit the detailed CPAN module installation guide.