Peter Karman
and 1 contributors


SWISH::Prog::Lucy - Swish3 Apache Lucy backend


 # create an index
 use SWISH::Prog;
 my $indexer = SWISH::Prog->new(
    invindex   => 'path/to/index.swish',
    aggregator => 'fs',
    indexer    => 'lucy',
    config     => 'path/to/swish.conf',
 # then search the index
 my $searcher = SWISH::Prog::Lucy::Searcher->new(
    invindex             => 'path/to/index.swish',
    max_hits             => 1000,
    find_relevant_fields => 1,   # default: 0
    nfs_mode             => 1,   # default: 0
 my $results = $searcher->search('my query')
 while ( my $result = $results->next ) {
    printf("%s : %s\n", $result->score, $result->uri);


STOP: Read the SWISH::Prog documentation before you use this module.

SWISH::Prog::Lucy is an Apache Lucy based implementation of Swish3, using the SWISH::3 bindings for libswish3.

See the SWISH::Prog docs for more information about the class hierarchy and history.

See the Swish3 development site at

Why Not Use Lucy Directly?

You can use Lucy directly. Using Lucy via SWISH::Prog::Lucy offers a few advantages:

Aggregators and Filters

You get to use all of SWISH::Prog's Aggregators and SWISH::Filter support. So you can easily index all kinds of file formats (email, .txt, .html, .xml, .pdf, .doc, .xls, etc) without writing your own parser.


SWISH::3 offers fast and robust XML and HTML parsers with an extensible configuration system, build on top of libxml2.

Simple now, complex later

You can index your content with SWISH::Prog::Lucy, then build a more complex searching application directly with Lucy.


Peter Karman, <karman at>


Please report any bugs or feature requests to bug-swish-prog-lucy at, or through the web interface at I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.


You can find documentation for this module with the perldoc command.

    perldoc SWISH::Prog::Lucy

You can also look for information at:


Copyright 2009 Peter Karman.

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 for more information.


SWISH::Prog, Lucy