kinosearch1::store::raminvindex(3pm) [debian man page]
KinoSearch1::Store::RAMInvIndex(3pm) User Contributed Perl Documentation KinoSearch1::Store::RAMInvIndex(3pm)NAME
KinoSearch1::Store::RAMInvIndex - in-memory InvIndex
SYNOPSIS
my $invindex = KinoSearch1::Store::RAMInvIndex->new(
path => '/path/to/invindex',
);
# or...
my $invindex = KinoSearch1::Store::RAMInvIndex->new;
DESCRIPTION
RAMInvIndex is an entirely in-memory implementation of KinoSearch1::Store::InvIndex. It serves two main purposes.
First, it's possible to load an existing FSInvIndex into memory, which can improve search-speed -- if you have that kind of RAM to spare.
Needless to say, any FSInvIndex you try to load this way should be appropriately modest in size.
Second, RAMInvIndex is handy for testing and development.
CONSTRUCTOR
new
Create a RAMInvIndex object. "new" takes one optional parameter, "path". If "path" is supplied, KinoSearch1 will try to read an FSInvIndex
at that location into memory.
COPYRIGHT
Copyright 2005-2010 Marvin Humphrey
LICENSE, DISCLAIMER, BUGS, etc.
See KinoSearch1 version 1.00.
perl v5.14.2 2011-11-15 KinoSearch1::Store::RAMInvIndex(3pm)
Check Out this Related Man Page
KinoSearch1::InvIndexer(3pm) User Contributed Perl Documentation KinoSearch1::InvIndexer(3pm)NAME
KinoSearch1::InvIndexer - build inverted indexes
SYNOPSIS
use KinoSearch1::InvIndexer;
use KinoSearch1::Analysis::PolyAnalyzer;
my $analyzer
= KinoSearch1::Analysis::PolyAnalyzer->new( language => 'en' );
my $invindexer = KinoSearch1::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($title);
$doc->set_value( title => $title );
$doc->set_value( bodytext => $bodytext );
$invindexer->add_doc($doc);
}
$invindexer->finish;
DESCRIPTION
The InvIndexer class is KinoSearch1's primary tool for creating and modifying inverted indexes, which may be searched using
KinoSearch1::Searcher.
METHODS
new
my $invindexer = KinoSearch1::InvIndexer->new(
invindex => '/path/to/invindex', # required
create => 1, # default: 0
analyzer => $analyzer, # default: no-op Analyzer
);
Create an InvIndexer object.
o invindex - can be either a filepath, or an InvIndex subclass such as KinoSearch1::Store::FSInvIndex or KinoSearch1::Store::RAMInvIndex.
o create - create a new invindex, clobbering an existing one if necessary.
o analyzer - an object which subclasses KinoSearch1::Analysis::Analyzer, such as a PolyAnalyzer.
spec_field
$invindexer->spec_field(
name => 'url', # required
boost => 1, # default: 1,
analyzer => undef, # default: analyzer spec'd in new()
indexed => 0, # default: 1
analyzed => 0, # default: 1
stored => 1, # default: 1
compressed => 0, # default: 0
vectorized => 0, # default: 1
);
Define a field.
o name - the field's name.
o boost - A multiplier which determines how much a field contributes to a document's score.
o analyzer - By default, all indexed fields are analyzed using the analyzer that was supplied to new(). Supplying an alternate for a
given field overrides the primary analyzer.
o indexed - index the field, so that it can be searched later.
o analyzed - analyze the field, using the relevant Analyzer. Fields such as "category" or "product_number" might be indexed but not
analyzed.
o stored - store the field, so that it can be retrieved when the document turns up in a search.
o compressed - compress the stored field, using the zlib compression algorithm.
o vectorized - store the field's "term vectors", which are required by KinoSearch1::Highlight::Highlighter for excerpt selection and
search term highlighting.
new_doc
my $doc = $invindexer->new_doc;
Spawn an empty KinoSearch1::Document::Doc object, primed to accept values for the fields spec'd by spec_field.
add_doc
$invindexer->add_doc($doc);
Add a document to the invindex.
add_invindexes
my $invindexer = KinoSearch1::InvIndexer->new(
invindex => $invindex,
analyzer => $analyzer,
);
$invindexer->add_invindexes( $another_invindex, $yet_another_invindex );
$invindexer->finish;
Absorb existing invindexes into this one. May only be called once per InvIndexer. add_invindexes() and add_doc() cannot be called on the
same InvIndexer.
delete_docs_by_term
my $term = KinoSearch1::Index::Term->new( 'id', $unique_id );
$invindexer->delete_docs_by_term($term);
Mark any document which contains the supplied term as deleted, so that it will be excluded from search results. For more info, see
Deletions in KinoSearch1::Docs::FileFormat.
finish
$invindexer->finish(
optimize => 1, # default: 0
);
Finish the invindex. Invalidates the InvIndexer. Takes one hash-style parameter.
o optimize - If optimize is set to 1, the invindex will be collapsed to its most compact form, which will yield the fastest queries.
COPYRIGHT
Copyright 2005-2010 Marvin Humphrey
LICENSE, DISCLAIMER, BUGS, etc.
See KinoSearch1 version 1.00.
perl v5.14.2 2011-11-15 KinoSearch1::InvIndexer(3pm)