The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Lucy::Search::RequiredOptionalQuery - Join results for two Queries, one required, one optional.

SYNOPSIS

    my $foo_and_maybe_bar = Lucy::Search::RequiredOptionalQuery->new(
        required_query => $foo_query,
        optional_query => $bar_query,
    );
    my $hits = $searcher->hits( query => $foo_and_maybe_bar );
    ...

DESCRIPTION

RequiredOptionalQuery joins the result sets of one Query which MUST match, and one Query which SHOULD match. When only the required Query matches, its score is passed along; when both match, the scores are summed.

CONSTRUCTORS

new

    my $reqopt_query = Lucy::Search::RequiredOptionalQuery->new(
        required_query => $foo_query,    # required
        optional_query => $bar_query,    # required
    );

Create a new RequiredOptionalQuery.

  • required_query - Query must must match.

  • optional_query - Query which should match.

METHODS

get_required_query

    my $query = $required_optional_query->get_required_query();

Getter for the required Query.

set_required_query

    $required_optional_query->set_required_query($required_query);

Setter for the required Query.

get_optional_query

    my $query = $required_optional_query->get_optional_query();

Getter for the optional Query.

set_optional_query

    $required_optional_query->set_optional_query($optional_query);

Setter for the optional Query.

make_compiler

    my $compiler = $required_optional_query->make_compiler(
        searcher    => $searcher     # required
        boost       => $boost        # required
        subordinate => $subordinate  # default: false
    );

Abstract factory method returning a Compiler derived from this Query.

  • searcher - A Searcher.

  • boost - A scoring multiplier.

  • subordinate - Indicates whether the Query is a subquery (as opposed to a top-level query). If false, the implementation must invoke normalize() on the newly minted Compiler object before returning it.

INHERITANCE

Lucy::Search::RequiredOptionalQuery isa Lucy::Search::PolyQuery isa Lucy::Search::Query isa Clownfish::Obj.