KinoSearch is a search engine library.
SYNOPSIS
First, write an application to build an inverted index, or "invindex", from your document collection.
use KinoSearch::InvIndexer;
use KinoSearch::Analysis::PolyAnalyzer;
my $analyzer
= KinoSearch::Analysis::PolyAnalyzer->new( language => 'en' );
my $invindexer = KinoSearch::InvIndexer->new(
invindex => '/path/to/invindex',
create => 1,
analyzer => $analyzer,
);
$invindexer->spec_field(
name => 'title',
boost => 3,
);
$invindexer->spec_field( name => 'bodytext' );
while ( my ( $title, $bodytext ) = each %source_documents ) {
my $doc = $invindexer->new_doc;
$doc->set_value( title => $title );
$doc->set_value( bodytext => $bodytext );
$invindexer->add_doc($doc);
}
$invindexer->finish;
Then, write a second application to search the invindex:
use KinoSearch::Searcher;
use KinoSearch::Analysis::PolyAnalyzer;
my $analyzer
= KinoSearch::Analysis::PolyAnalyzer->new( language => 'en' );
my $searcher = KinoSearch::Searcher->new(
invindex => '/path/to/invindex',
analyzer => $analyzer,
);
my $hits = $searcher->search( query => "foo bar" );
while ( my $hit = $hits->fetch_hit_hashref ) {
print "$hit->{title}n";
}
Here are some key features of "KinoSearch":
· Extremely fast and scalable - can handle millions of documents
· Incremental indexing (addition/deletion of documents to/from an existing index).
· Full support for 12 Indo-European languages.
· Support for boolean operators AND, OR, and AND NOT; parenthetical groupings, and prepended +plus and -minus
· Algorithmic selection of relevant excerpts and highlighting of search terms within excerpts
· Highly customizable query and indexing APIs
· Phrase matching
· Stemming
· Stoplists
Requirements:
· Perl
Product's homepage
Here are some key features of "KinoSearch":
· Extremely fast and scalable - can handle millions of documents
· Incremental indexing (addition/deletion of documents to/from an existing index).
· Full support for 12 Indo-European languages.
· Support for boolean operators AND, OR, and AND NOT; parenthetical groupings, and prepended plus and -minus
· Algorithmic selection of relevant excerpts and highlighting of search terms within excerpts
· Highly customizable query and indexing APIs
· Phrase matching
· Stemming
· Stoplists
Requirements:
· Perl