debian man page for webservice::solr::query

Query: webservice::solr::query

OS: debian

Section: 3pm

Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar

WebService::Solr::Query(3pm)				User Contributed Perl Documentation			      WebService::Solr::Query(3pm)

NAME
WebService::Solr::Query - Abstract query syntax for Solr queries
SYNOPSIS
my $query = WebService::Solr::Query->new( { foo => 'bar' } ); my $result = $solr->search( $query );
DESCRIPTION
WebService::Solr::Query provides a programmatic way to generate queries to be sent to Solr. Syntax wise, it attempts to be as close to SQL::Abstract WHERE clauses as possible, with obvious exceptions for idioms that do not exist in SQL. Just as values in SQL::Abstract are SQL-escaped, this module does the appropriate Solr-escaping on all values passed to the object (see "escape()").
QUERY SYNTAX
Key-Value Pairs The simplest way to search is with key value pairs. my $q = WebService::Solr::Query->new( { foo => 'bar' } ); # RESULT: (foo:"bar") Implicit AND and OR By default, data received as a HASHREF is AND'ed together. my $q = WebService::Solr::Query->new( { foo => 'bar', baz => 'quux' } ); # RESULT: (foo:"bar" AND baz:"quux") Furthermore, data received as an ARRAYREF is OR'ed together. my $q = WebService::Solr::Query->new( { foo => [ 'bar', 'baz' ] } ); # RESULT: (foo:"bar" OR foo:"baz") Nested AND and OR The ability to nest AND and OR boolean operators is essential to express complex queries. The "-and" and "-or" prefixes have been provided for this need. my $q = WebService::Solr::Query->new( { foo => [ -and => { -prohibit => 'bar' }, { -require => 'baz' } ] } ); # RESULT: (((-foo:"bar") AND (+foo:"baz"))) my $q = WebService::Solr::Query->new( { foo => [ -or => { -require => 'bar' }, { -prohibit => 'baz' } ] } ); # RESULT: (((+foo:"bar") OR (-foo:"baz"))) Default Field To search the default field, use the "-default" prefix. my $q = WebService::Solr::Query->new( { -default => 'bar' } ); # RESULT: ("bar") Require/Prohibit my $q = WebService::Solr::Query->new( { foo => { -require => 'bar' } } ); # RESULT: (+foo:"bar") my $q = WebService::Solr::Query->new( { foo => { -prohibit => 'bar' } } ); # RESULT: (-foo:"bar") Range There are two types of range queries, inclusive ("-range_inc") and exclusive ("-range_exc"). The "-range" prefix can be used in place of "-range_inc". my $q = WebService::Solr::Query->new( { foo => { -range => ['a', 'z'] } } ); # RESULT: (+foo:[a TO z]) my $q = WebService::Solr::Query->new( { foo => { -range_exc => ['a', 'z'] } } ); # RESULT: (+foo:{a TO z}) Boost my $q = WebService::Solr::Query->new( { foo => { -boost => [ 'bar', '2.0' ] } } ); # RESULT: (foo:"bar"^2.0) Proximity my $q = WebService::Solr::Query->new( { foo => { -proximity => [ 'bar baz', 10 ] } } ); # RESULT: (foo:"bar baz"~10) Fuzzy my $q = WebService::Solr::Query->new( { foo => { -fuzzy => [ 'bar', '0.8' ] } } ); # RESULT: (foo:bar~0.8) Boost my $q = WebService::Solr::Query->new( { foo => { -boost => [ 'bar', '2.0' ] } } ); # RESULT: (foo:"bar"^2.0) Literal Queries Specifying a scalar ref as a value in a key-value pair will allow arbitrary queries to be sent across the line. NB: This will bypass any data massaging done on regular strings, thus the onus of properly escaping the data is left to the user. my $q = WebService::Solr::Query->new( { '*' => '*' } ) # RESULT (*:*)
ACCESSORS
o query - stores the original query structure
METHODS
new( \%query ) Creates a new query object with the given hashref. stringify( ) Converts the supplied structure into a Solr/Lucene query. escape( $value ) The following values must be escaped in a search value: + - & | ! ( ) { } [ ] ^ " ~ * ? : NB: Values sent to "new()" are automatically escaped for you. unescape( $value ) Unescapes values escaped in "escape()". D Debugging constant, default: off. BUILDARGS Moose method to handle input to "new()".
SEE ALSO
o WebService::Solr o http://wiki.apache.org/solr/SolrQuerySyntax
AUTHORS
Brian Cassidy <bricas@cpan.org> Jos Boumans <kane@cpan.org>
COPYRIGHT AND LICENSE
Copyright 2008-2012 National Adult Literacy Database This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.14.2 2012-05-24 WebService::Solr::Query(3pm)
Related Man Pages
text::glob5.18(3) - mojave
class::makemethods::emulator::accessors(3pm) - debian
kinosearch1::queryparser::queryparser(3pm) - debian
mojo::parameters(3pm) - debian
webservice::youtube(3pm) - debian
Similar Topics in the Unix Linux Community
how does this work....
Should we allow or prohibit employment recruiting via PM?
Query SQL get two values differents from the same columns
Solr--Basic Example execution error
Finding out size of sub-directory