10 Apr 2009 01:02:02 UTC
- Distribution: KinoSearch
- Source (raw)
- Browse (raw)
- How to Contribute
- Issues (5)
- Testers (596 / 25 / 33)
- KwaliteeBus factor: 0
- License: perl_5
- Activity24 month
- Download (226.92KB)
- MetaCPAN Explorer
- Subscribe to distribution
- This version
- Latest versionCREAMYG Marvin Humphreyand 1 contributors
- Marvin Humphrey <marvin at rectangular dot com>
KinoSearch::QueryParser::QueryParser - transform a string into a Query object
my $query_parser = KinoSearch::QueryParser::QueryParser->new( analyzer => $analyzer, fields => [ 'bodytext' ], ); my $query = $query_parser->parse( $query_string ); my $hits = $searcher->search( query => $query );
The QueryParser accepts search strings as input and produces Query objects, suitable for feeding into KinoSearch::Searcher.
The following constructs are recognized by QueryParser.
Boolean operators 'AND', 'OR', and 'AND NOT'.
Prepented +plus and -minus, indicating that the labeled entity should be either required or forbidden -- be it a single word, a phrase, or a parenthetical group.
Logical groups, delimited by parentheses.
Phrases, delimited by double quotes.
Field-specific terms, in the form of
fieldname:termtext. (The field specified by fieldname will be used instead of the QueryParser's default fields).
A field can also be given to a logical group, in which case it is the same as if the field had been prepended onto every term in the group. For example:
foo:(bar baz)is the same as
my $query_parser = KinoSearch::QueryParser::QueryParser->new( analyzer => $analyzer, # required fields => [ 'bodytext' ], # required default_boolop => 'AND', # default: 'OR' );
Constructor. Takes hash-style parameters:
analyzer - An object which subclasses KinoSearch::Analysis::Analyzer. This must be identical to the Analyzer used at index-time, or the results won't match up.
fields - the names of the fields which will be searched against. Must be supplied as an arrayref.
default_field - deprecated. Use
default_boolop - two possible values: 'AND' and 'OR'. The default is 'OR', which means: return documents which match any of the query terms. If you want only documents which match all of the query terms, set this to 'AND'.
my $query = $query_parser->parse( $query_string );
Turn a query string into a Query object. Depending on the contents of the query string, the returned object could be any one of several subclasses of KinoSearch::Search::Query.
Copyright 2005-2009 Marvin Humphrey
See KinoSearch version 0.165.