---
name: "Lucy::Search::RequiredOptionalQuery"
section: "3pm"
platform: "linux"
package: "liblucy-perl"
version: "0.3.3-7+b1"
release: "Debian 9 (Stretch)"
platforms: ["linux"]
url: "https://new.carta.tech/Lucy::Search::RequiredOptionalQuery"
---

# Lucy::Search::RequiredOptionalQuery(3pm)

Join results for two Queries, one required, one optional.

## 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( *\[labeled params\]* )

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

- •

  **required\_query** - Query must must match.

- •

  **optional\_query** - Query which should match.

## METHODS

### *get\_required\_query()*

Getter for the required Query.

### set\_required\_query(required\_query)

Setter for the required Query.

### *get\_optional\_query()*

Getter for the optional Query.

### set\_optional\_query(optional\_query)

Setter for the optional Query.

## INHERITANCE

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