The Perl Advent Calendar needs more articles for 2022. Submit your idea today!


WebService::Solr::Response - Parse responses from Solr


    my $res = WebService::Solr::Response->new( $http_res );
    for my $doc( $res->docs ) {
        print $doc->value_for( 'id'), "\n";
    my $pager = $res->pager;


This class encapsulates responses from the Solr Web Service. Typically it is used when documents are returned from a search query, though it will accept all responses from the service.


  • raw_response - the raw HTTP::Response object.

  • content - a hashref of deserialized JSON data from the response.

  • docs - an array of WebService::Solr::Document objects.

  • pager - a Data::Page object for the search results.

  • pageset - a Data::Pageset object for the search results. Takes the same arguments as Data::Pageset->new does. All arguments optional.


new( $response )

Given an HTTP::Response object, it will parse the returned data as required.

BUILDARGS( @args )

A Moo override to allow our custom constructor.

facet_counts( )

A shortcut to the facet_counts key in the response data.

spellcheck( )

A shortcut to the spellcheck key in the response data.

solr_status( )

Looks for the status value in the response data.

ok( )

Calls solr_status() and check that it is equal to 0.


Andy Lester

Brian Cassidy <>

Kirk Beers


Copyright 2008-2014 National Adult Literacy Database Copyright 2015-2020 Andy Lester

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.