# NAME Data::SearchEngine::Solr # VERSION version 0.20 # SYNOPSIS my $solr = Data::SearchEngine::Solr->new( url => 'http://localhost:8983/solr', options => { fq => 'category:Foo', facets => 'true' } ); my $query = Data::SearchEngine::Query->new( count => 10, page => 1, query => 'ice cream', ); my $results = $solr->search($query); foreach my $item ($results->items) { print $item->get_value('name')."\n"; } # DESCRIPTION Data::SearchEngine::Solr is a [Data::SearchEngine](http://search.cpan.org/perldoc?Data::SearchEngine) backend for the Solr search server. # NAME Data::SearchEngine::Solr - Data::SearchEngine backend for Solr # SOLR FEATURES ## FILTERS This module uses the values from Data::SearchEngine::Query's `filters` to populate the `fq` parameter. Before talking to Solr we iterate over the filters and add the filter's value to `fq`. $query->filters->{'last name watson'} = 'last_name:watson'; Will results in fq=name:watson. Multiple filters will be appended. ## FACETS Facets may be enabled thusly: $solr->options->{facets} = 'true'; $solr->options->{facet.field} = 'somefield'; You may also use other `facet.*` parameters, as defined by Solr. To access facet data, consult the documentation for [Data::SearchEngine::Results](http://search.cpan.org/perldoc?Data::SearchEngine::Results) and it's `facets` method. ## SPELLCHECK Queries may be spellchecked using Solr's spellcheck component. If you supply the correct parameters through the URL or to your URI handler then Data::SearchEngine::Solr will see it in the results and populate the bits from [Data::SearchEngine::Results::Spellcheck](http://search.cpan.org/perldoc?Data::SearchEngine::Results::Spellcheck). Note that some of the features may not work properly unless `spellcheck.extendedResults` is true in your query. # ATTRIBUTES ## options HashRef that is passed to [WebService::Solr](http://search.cpan.org/perldoc?WebService::Solr). Please see the above documentation on filters and facets before using this directly. ## url The URL at which to contact the Solr instance. # METHODS ## add (\@items) Adds a list of [Data::SearchEngine::Item](http://search.cpan.org/perldoc?Data::SearchEngine::Item)s to the Solr index. The Items are converted into [WebService::Solr::Document](http://search.cpan.org/perldoc?WebService::Solr::Document)s using the follow means: - `score` is used as the bonus. - `id` is used as the document's id. - Multiple-value fields are broken up into multiple [WebService::Solr::Field](http://search.cpan.org/perldoc?WebService::Solr::Field) objects per [WebService::Solr](http://search.cpan.org/perldoc?WebService::Solr)'s convention. This is merely a formality, it has no real affect. ## optimize Calls WebService::Solr's `optimize` method. ## remove Deletes an item from the index. A straight dispatch to [WebService::Solr](http://search.cpan.org/perldoc?WebService::Solr)'s `delete`. ## remove_by_id Delete a specific document by it's id. ## search ($query) Accepts a [Data::SearchEngine::Query](http://search.cpan.org/perldoc?Data::SearchEngine::Query) and returns a [Data::SearchEngine::Results](http://search.cpan.org/perldoc?Data::SearchEngine::Results) object containing the data from Solr. ## update Alias for `add`. # AUTHOR Cory G Watson, `` # COPYRIGHT & LICENSE Copyright 2009 - 2011 Cory G Watson. This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License. See http://dev.perl.org/licenses/ for more information. # AUTHOR Cory G Watson # COPYRIGHT AND LICENSE This software is copyright (c) 2011 by Cold Hard Code, LLC. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.