NAME
KinoSearch::FieldSpec - Define a field's behavior.
SYNOPSIS
Define your custom subclass:
package MySchema::Price;
use base qw( KinoSearch::FieldSpec );
sub analyzed { 0 }
sub indexed { 1 }
sub stored { 1 }
sub analyzed { 0 }
sub vectorized { 0 }
sub binary { 0 }
sub compressed { 0 }
Then, arrange for your subclass of KinoSearch::Schema to load it.
package MySchema;
use base qw( KinoSearch::Schema );
our %fields = (
name => 'text',
price => 'MySchema::Price',
);
DESCRIPTION
FieldSpec is an abstract class defining a set of traits and behaviors which may be associated with one or more field names.
CLASS METHODS
boost
Returns a multiplier which determines how much a field contributes to a document's score. Default 1.0.
analyzer
By default, analyzer() has no return value, which indicates that the Schema's default analyzer should be used for this field. If you want a given field to use a different analyzer, override this method and have it return an object which isa KinoSearch::Analysis::Analyzer.
similarity
Expert API. Returns nothing by default. Override it if you want this field to use a custom subclass of KinoSearch::Search::Similarity, rather than the Schema's default.
posting_type
EXPERIMENTAL - the capacity to specify different posting types is not going away, but the interface is likely to change.
Expert API. Indicates what subclass of Posting the field should use. The default is the general-purpose KinoSearch::Posting::ScorePosting. Boolean (true/false only) fields might use KinoSearch::Posting::MatchPosting. To override, supply a class name which isa KinoSearch::Posting.
ABSTRACT CLASS METHODS
indexed
Returns a boolean indicating whether the field should be indexed, so that it can be searched later.
analyzed
Returns a boolean indicating whether to analyze the field using the relevant Analyzer.
Fields such as "category" or "product_number" might be indexed but not analyzed.
stored
Returns a boolean indicating whether to store the raw field value, so that it can be retrieved when the document turns up in a search.
compressed
Returns a boolean indicating whether to compress the stored field, using the zlib compression algorithm.
vectorized
Returns a boolean indication whether to store the field's "term vectors", which are required by KinoSearch::Highlight::Highlighter for excerpt selection and search term highlighting.
Term vectors require a fair amount of space, so you should turn this off if you don't need it.
COPYRIGHT
Copyright 2005-2007 Marvin Humphrey
LICENSE, DISCLAIMER, BUGS, etc.
See KinoSearch version 0.20.