Lucy::Search::RangeQuery(3) Match a range of values.

SYNOPSIS


# Match all articles by "Foo" published since the year 2000.
my $range_query = Lucy::Search::RangeQuery->new(
field => 'publication_date',
lower_term => '2000-01-01',
include_lower => 1,
);
my $author_query = Lucy::Search::TermQuery->new(
field => 'author_last_name',
text => 'Foo',
);
my $and_query = Lucy::Search::ANDQuery->new(
children => [ $range_query, $author_query ],
);
my $hits = $searcher->hits( query => $and_query );
...

DESCRIPTION

RangeQuery matches documents where the value for a particular field falls within a given range.

CONSTRUCTORS

new( [labeled params] )

    my $range_query = Lucy::Search::RangeQuery->new(
        field         => 'product_number', # required
        lower_term    => '003',            # see below
        upper_term    => '060',            # see below
        include_lower => 0,                # default true
        include_upper => 0,                # default true
    );

Takes 5 parameters; "field" is required, as is at least one of either "lower_term" or "upper_term".

  • field - The name of a "sortable" field.
  • lower_term - Lower delimiter. If not supplied, all values less than "upper_term" will pass.
  • upper_term - Upper delimiter. If not supplied, all values greater than "lower_term" will pass.
  • include_lower - Indicates whether docs which match "lower_term" should be included in the results.
  • include_upper - Indicates whether docs which match "upper_term" should be included in the results.

INHERITANCE

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