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 Clownfish::Obj.