.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "KinoSearch1::QueryParser::QueryParser 3pm" .TH KinoSearch1::QueryParser::QueryParser 3pm 2024-03-10 "perl v5.38.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NAME KinoSearch1::QueryParser::QueryParser \- transform a string into a Query object .SH SYNOPSIS .IX Header "SYNOPSIS" .Vb 6 \& my $query_parser = KinoSearch1::QueryParser::QueryParser\->new( \& analyzer => $analyzer, \& fields => [ \*(Aqbodytext\*(Aq ], \& ); \& my $query = $query_parser\->parse( $query_string ); \& my $hits = $searcher\->search( query => $query ); .Ve .SH DESCRIPTION .IX Header "DESCRIPTION" The QueryParser accepts search strings as input and produces Query objects, suitable for feeding into KinoSearch1::Searcher. .SS Syntax .IX Subsection "Syntax" The following constructs are recognized by QueryParser. .IP \(bu 4 Boolean operators 'AND', 'OR', and 'AND NOT'. .IP \(bu 4 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. .IP \(bu 4 Logical groups, delimited by parentheses. .IP \(bu 4 Phrases, delimited by double quotes. .IP \(bu 4 Field-specific terms, in the form of \f(CW\*(C`fieldname:termtext\*(C'\fR. (The field specified by fieldname will be used instead of the QueryParser's default fields). .Sp 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: \&\f(CW\*(C`foo:(bar baz)\*(C'\fR is the same as \f(CW\*(C`foo:bar foo:baz\*(C'\fR. .SH METHODS .IX Header "METHODS" .SS new .IX Subsection "new" .Vb 5 \& my $query_parser = KinoSearch1::QueryParser::QueryParser\->new( \& analyzer => $analyzer, # required \& fields => [ \*(Aqbodytext\*(Aq ], # required \& default_boolop => \*(AqAND\*(Aq, # default: \*(AqOR\*(Aq \& ); .Ve .PP Constructor. Takes hash-style parameters: .IP \(bu 4 \&\fBanalyzer\fR \- An object which subclasses KinoSearch1::Analysis::Analyzer. This \&\fBmust\fR be identical to the Analyzer used at index-time, or the results won't match up. .IP \(bu 4 \&\fBfields\fR \- the names of the fields which will be searched against. Must be supplied as an arrayref. .IP \(bu 4 \&\fBdefault_field\fR \- deprecated. Use \f(CW\*(C`fields\*(C'\fR instead. .IP \(bu 4 \&\fBdefault_boolop\fR \- 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'. .SS parse .IX Subsection "parse" .Vb 1 \& my $query = $query_parser\->parse( $query_string ); .Ve .PP 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 KinoSearch1::Search::Query. .SH COPYRIGHT .IX Header "COPYRIGHT" Copyright 2005\-2010 Marvin Humphrey .SH "LICENSE, DISCLAIMER, BUGS, etc." .IX Header "LICENSE, DISCLAIMER, BUGS, etc." See KinoSearch1 version 1.01.