use Test::More tests => 5; use Search::Odeum; use File::Path qw(rmtree); my $db = './t/04_query.db'; my @data = ( { uri => 'http://example.com/1', document => 'apple', }, { uri => 'http://example.com/2', document => 'orange apple', }, { uri => 'http://example.com/3', document => 'strawberry orange', }, { uri => 'http://example.com/4', document => 'strawberry orange apple', }, ); { my $odeum = Search::Odeum->new($db, OD_OCREAT|OD_OWRITER); ok($odeum->writable); for my $d(@data) { my $doc = Search::Odeum::Document->new($d->{uri}); for my $word(split /\s+/, $d->{document}) { $doc->addword($word, $word); } $odeum->put($doc); } $odeum->close; } { my $odeum = Search::Odeum->new($db, OD_OREADER); { my $res = $odeum->query('orange & apple & strawberry'); is($res->num, 1); my $doc = $res->next; if ($doc) { is($doc->uri, 'http://example.com/4'); } } { my $res = $odeum->query('orange ! apple'); is($res->num, 1); my $doc = $res->next; is($doc->uri, 'http://example.com/3'); } $odeum->close; } END { rmtree($db); }; __END__