[KinoSearch] Re: Error trying to merge invindexes

Edward Betts edwardbetts at gmail.com
Wed Jun 25 05:23:27 PDT 2008


I'm running r3472. I've written a minimal test case:

#!/usr/bin/perl
use strict;
use warnings;
use lib </home/edward/svn/kinosearch/perl/blib/{arch,lib}>;
use KinoSearch::InvIndexer;

package Location;
use base qw( KinoSearch::FieldSpec::text );
sub indexed { 0 }
sub analyzed { 0 }

package Schema;
use base qw( KinoSearch::Schema );

use KinoSearch::Analysis::PolyAnalyzer;

our %fields = ( location => 'Location' );

sub analyzer {
    KinoSearch::Analysis::PolyAnalyzer->new( language => 'en' );
}

package main;

my $invindexer = KinoSearch::InvIndexer->new(
    invindex => Schema->clobber('index1'),
);
$invindexer->add_doc({ location => 'x' });
$invindexer->finish();

$invindexer = KinoSearch::InvIndexer->new(
    invindex => Schema->clobber('index2'),
);
$invindexer->add_invindexes(Schema->read('index1'));
$invindexer->finish();

I get this error:

Error in function refill at ../c_src/KinoSearch/Store/InStream.c:95:
Read past EOF of seg_1.tvx (start: 16 len 16)
         at /home/edward/svn/kinosearch/perl/blib/lib/KinoSearch/Index/TermVectorsWriter.pm
line 54
        KinoSearch::Index::TermVectorsWriter::add_segment('KinoSearch::Index::TermVectorsWriter=SCALAR(0x85f3824)',
'KinoSearch::Index::SegReader=SCALAR(0x85f37d0)',
'KinoSearch::Util::IntMap=SCALAR(0x85ff830)') called at
/home/edward/svn/kinosearch/perl/blib/lib/KinoSearch/Index/SegWriter.pm
line 112
        KinoSearch::Index::SegWriter::add_segment('KinoSearch::Index::SegWriter=SCALAR(0x85f37b8)',
'KinoSearch::Index::SegReader=SCALAR(0x85f37d0)') called at
/home/edward/svn/kinosearch/perl/blib/lib/KinoSearch/InvIndexer.pm
line 171
        KinoSearch::InvIndexer::add_invindexes('KinoSearch::InvIndexer=SCALAR(0x85f36a4)',
'KinoSearch::InvIndex=SCALAR(0x85f4c98)') called at test_merge.pl line
35

-- 
Edward.



More information about the kinosearch mailing list