Author image Peter Karman
and 1 contributors


SWISH::Prog::Xapian - Swish3 Xapian backend


 # create an indexing program
 use SWISH::Prog;
 my $indexer = SWISH::Prog->new(
    invindex   => 'path/to/index.swish',
    aggregator => 'fs',
    indexer    => 'xapian',
    config     => 'path/to/swish.conf',
 # then search the index
 my $searcher = SWISH::Prog::Xapian::Searcher->new(
    invindex => 'path/to/index.swish',
    config   => 'path/to/swish.conf',
 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::Xapian is a Xapian-based implementation of Swish3, using the SWISH::3 bindings for libswish3.

See the Swish3 development site at

Why Not Use Search::Xapian Directly?

You can use Search::Xapian directly. Using Search::Xapian via SWISH::Prog::Xapian 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::Xapian, then build a more complex searching application directly with Search::Xapian.

Compatibility with swish_xapian

The swish_xapian tool that comes as part of libswish3 should generate compatible indexes. So you can create indexes with SWISH::Prog::Xapian::Indexer and search them with swish_xapian and vice versa.


Peter Karman, <karman at cpan dot org>


Please report any bugs or feature requests to bug-swish-prog-xapian 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::Xapian

You can also look for information at:


Copyright 2009 Peter Karman, all rights reserved.

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


SWISH::Prog, Search::Xapian