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 Moo 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 serialized in the request URL.
If filter queries are needed, create WebService::Solr::Query objects and pass them into the %options.
For example, if you were searching a database of books for a subject of "Perl", but wanted only
paperbacks and a copyright year of 2011 or 2012:
my $query = WebService::Solr::Query->new( { subject => 'Perl' } );
my %options = (
fq => [
WebService::Solr::Query->new( { binding => 'Paperback' } ),
WebService::Solr::Query->new( { year => [ 2011, 2012 ] } ),
],
);
my $response = $solr->search( $query, \%options );
The filter queries are typically added when drilling down into search results and selecting a facet to
drill into.
In order to enable facets, the option "facet => "on"" must be passed. Facet options are detailed in the
wiki (https://wiki.apache.org/solr/SimpleFacetParameters).
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 correspondingly named function (e.g. "dataimport" ).