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 = shift;
        return MyCompiler->new( @_, parent => $self );
    }
    
    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.