The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.


WebService::Lucene - Module to interface with the Lucene indexing webservice


    # Connect to the web service
    $ws = WebService::Lucene->new( $url );
    # Create an index
    $ndex = $ws->create_index( $index );
    # Get a particular index
    $index = $ws->get_index( $name );
    # Index a document
    $document = $index->add_document( $document );
    # Get a document
    $document = $index->get_document( $id );
    # Delete the document
    # Search an index
    $results = $index->search( $query );
    # Get documents from search
    @documents = $results->documents;
    # Delete an index


This module is a Perl API in to the Lucene indexing web service.


new( $url )

This method will connect to the Lucene Web Service located at $url.

    my $ws = WebService::Lucene->new( 'http://localhost:8080/lucene/' );

base_url( [$url] )

Accessor for the base url of the service.

get_index( $name )

Retuens an WebService::Lucene::Index object for $name.

indexes( )

Alias for indices

indices( )

Returns an array of WebService::Lucene::Index objects.

properties( [$properties] )

Hash reference to a list of properties for the service.

_fetch_service_properties( )

Grabs the documents and sends the contents to _parse_service_properties.

_parse_service_properties( $xml )

Parses the XML and populates the object's properties

_fetch_service_document( )

Connects to the service url and passes the contents on to _parse_service_document.

_parse_service_document( $xml )

Parses the Atom Publishing Protocol introspection document and populates the service's indices.

title( [$title] )

Accessor for the title of the service.

_fetch_content( $url )

Shortcut for fetching the content at $url.

create_index( $name )

Creates the index on the server and returns the WebService::Lucene::Index object.

delete_index( $name )

Deletes an index.

update( )

Updates the document.

_properties_as_entry( )

Genereates an XML::Atom::Entry suitable for updating the document.

search( $indices, $query, [$params] )

Searches one or more indices for $query. Returns an WebService::Lucene::Results object.

    my $results = $ws->search( [ 'index1', 'index2' ], 'foo' );

facets( $indices, [$params] )

Gets facets for one or more indices. Returns an WebService::Lucene::Results object.

    my $results = $ws->facets( [ 'index1', 'index2' ] );



Brian Cassidy <>

Adam Paynter <>


Copyright 2006-2009 National Adult Literacy Database

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