Peter Karman > Lucy-0.3.0 > Lucy::Search::Query

Download:
Lucy-0.3.0.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
View/Report Bugs
Source   Latest Release: Lucy-0.4.0

NAME ^

Lucy::Search::Query - A specification for a search query.

SYNOPSIS ^

    # Query is an abstract base class.
    package MyQuery;
    use base qw( Lucy::Search::Query );
    
    sub make_compiler {
        my ( $self, %args ) = @_;
        my $subordinate = delete $args{subordinate};
        my $compiler = MyCompiler->new( %args, parent => $self );
        $compiler->normalize unless $subordinate;
        return $compiler;
    }
    
    package MyCompiler;
    use base ( Lucy::Search::Compiler );
    ...

DESCRIPTION ^

Query objects are simple containers which contain the minimum information necessary to define a search query.

The most common way to generate Query objects is to feed a search string such as 'foo AND bar' to a QueryParser's parse() method, which outputs an abstract syntax tree built up from various Query subclasses such as ANDQuery and TermQuery. However, it is also possible to use custom Query objects to build a search specification which cannot be easily represented using a search string.

Subclasses of Query must implement make_compiler(), which is the first step in compiling a Query down to a Matcher which can actually match and score documents.

CONSTRUCTORS ^

new( [labeled params] )

    my $query = MyQuery->SUPER::new(
        boost => 2.5,
    );

Abstract constructor.

ABSTRACT METHODS ^

make_compiler( [labeled params] )

Abstract factory method returning a Compiler derived from this Query.

METHODS ^

set_boost(boost)

Set the Query's boost.

get_boost()

Get the Query's boost.

INHERITANCE ^

Lucy::Search::Query isa Lucy::Object::Obj.

syntax highlighting: