The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

KinoSearch::Search::PolyFilter - Combine filters for a search.

SYNOPSIS

    my $polyfilter = KinoSearch::Search::PolyFilter->new;
    $polyfilter->add( filter => $query_filter );
    $polyfilter->add( filter => $range_filter, logic => 'AND' );
    my $hits = $searcher->search( query => $query, filter => $polyfilter );

DESCRIPTION

A PolyFilter is a chain of Filter objects which may be combined using boolean logic, making it possible to do things like filter by multiple ranges, or to apply both a RangeFilter and a QueryFilter to the same query.

During search, the sub-filters are applied in the order that they were added.

METHODS

new

    my $filter = KinoSearch::Search::PolyFilter->new;

Constructor. Takes no parameters.

add

    $polyfilter->add( 
        filter => $query_filter,  # required
        logic => 'OR',            # default: 'AND'
    );

Adds a filter to the query.

  • filter - the Filter object to add to the PolyFilter, which might be a QueryFilter, a RangeFilter, or another PolyFilter.

  • logic - AND, NOT, OR, or XOR. Optional; default is AND.

COPYRIGHT

Copyright 2005-2007 Marvin Humphrey

LICENSE, DISCLAIMER, BUGS, etc.

See KinoSearch version 0.20.