NAME¶
WebService::Solr - Module to interface with the Solr (Lucene) webservice
SYNOPSIS¶
my $solr = WebService::Solr->new;
$solr->add( @docs );
my $response = $solr->search( $query );
for my $doc ( $response->docs ) {
print $doc->value_for( $id );
}
DESCRIPTION¶
WebService::Solr is a client library for Apache Lucene's Solr; an
enterprise-grade indexing and searching platform.
ACCESSORS¶
- •
- url - the webservice base url
- •
- agent - a user agent object
- •
- autocommit - a boolean value for automatic commit()
after add/update/delete (default: enabled)
- •
- default_params - a hashref of parameters to send on every
request
- •
- last_response - stores a WebService::Solr::Response for the
last request
HTTP KEEP-ALIVE¶
Enabling HTTP Keep-Alive is as simple as passing your custom user-agent to the
constructor.
my $solr = WebService::Solr->new( $url,
{ agent => LWP::UserAgent->new( keep_alive => 1 ) }
);
Visit LWP::UserAgent's documentation for more information and available options.
METHODS¶
new( $url, \%options )¶
Creates a new WebService::Solr instance. If $url is omitted, then
"
http://localhost:8983/solr" is used as a default. Available options
are listed in the ACCESSORS section.
BUILDARGS( @args )¶
A Moose override to allow our custom constructor.
add( $doc|\@docs, \%options )¶
Adds a number of documents to the index. Returns true on success, false
otherwise. A document can be a WebService::Solr::Document object or a
structure that can be passed to
"WebService::Solr::Document->new". Available options as of Solr
1.4 are:
- •
- overwrite (default: true) - Replace previously added
documents with the same uniqueKey
- •
- commitWithin (in milliseconds) - The document will be added
within the specified time
update( $doc|\@docs, \%options )¶
Alias for "add()".
delete( \%options )¶
Deletes documents matching the options provided. The delete operation currently
accepts "query" and "id" parameters. Multiple values can
be specified as array references.
# delete documents matching "title:bar" or uniqueId 13 or 42
$solr->delete( {
query => 'title:bar',
id => [ 13, 42 ],
} );
delete_by_id( $id )¶
Deletes all documents matching the id specified. Returns true on success, false
otherwise.
delete_by_query( $query )¶
Deletes documents matching $query. Returns true on success, false otherwise.
search( $query, \%options )¶
Searches the index given a $query. Returns a WebService::Solr::Response object.
All key-value pairs supplied in "\%options" are serialzied in the
request URL.
auto_suggest( \%options )¶
Get suggestions from a list of terms for a given field. The Solr wiki has more
details about the available options
(
http://wiki.apache.org/solr/TermsComponent)
commit( \%options )¶
Sends a commit command. Returns true on success, false otherwise. You must do a
commit after an add, update or delete. By default, autocommit is enabled. You
may disable autocommit to allow you to issue commit commands manually:
my $solr = WebService::Solr->new( undef, { autocommit => 0 } );
$solr->add( $doc ); # will not automatically call commit()
$solr->commit;
Options as of Solr 1.4 include:
- •
- maxSegments (default: 1) - Optimizes down to at most this
number of segments
- •
- waitFlush (default: true) - Block until index changes are
flushed to disk
- •
- waitSearcher (default: true) - Block until a new searcher
is opened
- •
- expungeDeletes (default: false) - Merge segments with
deletes away
rollback( )¶
This method will rollback any additions/deletions since the last commit.
optimize( \%options )¶
Sends an optimize command. Returns true on success, false otherwise.
Options as of Solr 1.4 are the same as "commit()".
ping( )¶
Sends a basic ping request. Returns true on success, false otherwise.
generic_solr_request( $path, \%query )¶
Performs a simple "GET" request appending $path to the base URL and
using key-value pairs from "\%query" to generate the query string.
This should allow you to access parts of the Solr API that don't yet have
their own correspodingly named function (e.g. "dataimport" ).
SEE ALSO¶
- •
- http://lucene.apache.org/solr/
- •
- Solr - an alternate library
AUTHORS¶
Brian Cassidy <bricas@cpan.org>
Kirk Beers
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.