KinoSearch::Search::BooleanQuery(3pm)
NAME
KinoSearch::Search::BooleanQuery - match boolean combinations of
Queries
SYNOPSIS
my $bool_query = KinoSearch::Search::BooleanQuery->new; $bool_query->add_clause( query => $term_query, occur => 'MUST' ); my $hits = $searcher->search( query => $bool_query );
DESCRIPTION
BooleanQueries are super-Query objects which match boolean combinations
of other Queries.
- One way of producing a BooleanQuery is to feed a query string along the
lines of "this AND NOT that" to a QueryParser object:
- my $bool_query = $query_parser->parse( 'this AND NOT that' );
- It's also possible to achieve the same end by manually constructing the query piece by piece:
my $bool_query = KinoSearch::Search::BooleanQuery->new;- my $this_query = KinoSearch::Search::TermQuery->new(
term => KinoSearch::Index::Term->new( 'bodytext', 'this' ),
- );
$bool_query->add_clause( query => $this_query, occur => 'MUST' ); - my $that_query = KinoSearch::Search::TermQuery->new(
term => KinoSearch::Index::Term->new( 'bodytext', 'that' ),
- );
$bool_query->add_clause( query => $that_query, occur => 'MUST_NOT' ); - QueryParser objects and hand-rolled Queries can work together:
my $general_query = $query_parser->parse($q);
my $news_only = KinoSearch::Search::TermQuery->new(term => KinoSearch::Index::Term->new( 'category', 'news' );- );
$bool_query->add_clause( query => $general_query, occur => 'MUST' );
$bool_query->add_clause( query => $news_only, occur => 'MUST' );
METHODS
- new
- my $bool_query = KinoSearch::Search::BooleanQuery->new;
- Constructor. Takes no arguments.
- add_clause
- $bool_query->add_clause(
query => $query, # required
occur => 'MUST', # default: 'SHOULD' - );
- Add a clause to the BooleanQuery. Takes hash-style parameters:
- o query - an object which belongs to a subclass of
- KinoSearch::Search::Query.
- o occur - must be one of three possible values: 'SHOULD', 'MUST', or
- 'MUST_NOT'.
COPYRIGHT
Copyright 2005-2009 Marvin Humphrey
LICENSE, DISCLAIMER, BUGS, etc.
- See KinoSearch version 0.165.