---
name: "Lucy::Search::PolyQuery"
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::PolyQuery"
---

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

Base class for composite Query objects.

## NAME

Lucy::Search::PolyQuery - Base class for composite Query objects.

## SYNOPSIS

```
    sub walk {
        my $query = shift;
        if ( $query->isa("Lucy::Search::PolyQuery") ) {
            if    ( $query->isa("Lucy::Search::ORQuery") )  { ... }
            elsif ( $query->isa("Lucy::Search::ANDQuery") ) { ... }
            elsif ( $query->isa("Lucy::Search::RequiredOptionalQuery") ) {
                ...
            }
            elsif ( $query->isa("Lucy::Search::NOTQuery") ) { ... }
        }
        else { ... }
    }
```

## DESCRIPTION

PolyQuery serves as a shared base class for ANDQuery, ORQuery, NOTQuery, and RequiredOptionalQuery.  All of these classes may serve as nodes in composite Query with a tree structure which may be walked.

## INHERITANCE

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