Dezi::Lucy - Dezi Apache Lucy backend


 # create an index
 use Dezi::Lucy;
 my $app = Dezi::Lucy->new(
    invindex   => 'path/to/dezi.index',
    aggregator => 'fs',
    indexer    => 'lucy',
    config     => 'path/to/dezi.conf',


 # then search the index
 my $searcher = Dezi::Lucy::Searcher->new(
    invindex => 'path/to/dezi.index',
 my $results = $searcher->search('my query')
 while ( my $result = $results->next ) {
    printf("%s : %s\n", $result->score, $result->uri);


STOP: Read the Dezi and Dezi::App documentation before you use this module.

Dezi::Lucy is an Apache Lucy based implementation of Dezi::App using the SWISH::3 bindings for libswish3.

Dezi::Lucy is to Apache Lucy what Solr or ElasticSearch is to Lucene.

See the Dezi::App 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 Dezi::Lucy offers a few advantages:

Aggregators and Filters

You get to use all of Dezi'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 Dezi::Lucy, then build a more complex searching application directly with Lucy.


Peter Karman, <>


Please report any bugs or feature requests to bug-dezi-app 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 Dezi::App

You can also look for information at:


Copyright 2018 by Peter Karman

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