NAME
KinoSearch::Search::Searchable - Base class for searchers.
SYNOPSIS
# Abstract base class.
DESCRIPTION
Base class for searchers.
Abstract base class for objects which search. Core subclasses include KinoSearch::Searcher and KinoSearch::Search::PolySearcher.
CONSTRUCTORS
new( [labeled params] )
package MySearchable;
use base qw( KinoSearch::Search::Searchable );
sub new {
my $self = shift->SUPER::new;
...
return $self;
}
Abstract constructor.
schema - A KinoSearch::Schema.
METHODS
hits( [labeled params] )
Return a Hits object containing the top results.
query - Either a Query object or a query string.
offset - The number of most-relevant hits to discard, typically used when "paging" through hits N at a time. Setting
offset
to 20 andnum_wanted
to 10 retrieves hits 21-30, assuming that 30 hits can be found.num_wanted - The number of hits you would like to see after
offset
is taken into account.sort_spec - A KinoSearch::Search::SortSpec, which will affect how results are ranked and returned.
glean_query(query)
If the supplied object is a Query, return it; if it's a query string, create a QueryParser and parse it to produce a query against all indexed fields.
get_schema()
Accessor for the object's schema
member.
ABSTRACT METHODS
collect( [labeled params] )
Iterate over hits, feeding them into a HitCollector.
query - A Query.
collector - A HitCollector.
doc_max()
Return the maximum number of docs in the collection represented by the Searchable, which is also the highest possible doc id. Deleted docs are included in this count.
doc_freq( [labeled params] )
Return the number of documents which contain the term in the given field.
field - Field name.
term - The term to look up.
fetch_doc( [labeled params] )
Retrieve a document. Throws an error if the doc id is out of range.
doc_id - A document id.
score - A floating point score.
offset - Amount to be added to the doc_id if this Searchable is a subcomponent of another.
INHERITANCE
KinoSearch::Search::Searchable isa KinoSearch::Obj.
COPYRIGHT AND LICENSE
Copyright 2005-2009 Marvin Humphrey
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.