KinoSearch::Search::BooleanQuery.3pm

Langue: en

Version: 2010-05-02 (fedora - 01/12/10)

Section: 3 (Bibliothèques de fonctions)

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:

*
query - an object which belongs to a subclass of KinoSearch::Search::Query.
*
occur - must be one of three possible values: 'SHOULD', 'MUST', or 'MUST_NOT'.
Copyright 2005-2009 Marvin Humphrey

LICENSE, DISCLAIMER, BUGS, etc.

See KinoSearch version 0.165.