http://hypermail.org/source/docs/archive_search.html
Here's another way if using Perl.
The Swish-e (http://swish-e.org) package comes with a script for indexing hypermail archives and includes instructions on usage. Below I've included part of the documentation.
That script is in use here:
http://swish-e.org/Discussion/archive/
The search results page is not that pretty, but it's just using the default templates. I'm often frustrated when searching archives that I can't limit by date or author. So besides being able to just search by name, email, title, etc., you can do a search like:
hypermail name=moseley
to find posts with "hypermail" in either the title or body, and also only messages from moseley.
Here's the (un-proof read) instructions:
NAME
index_hypermail.pl - Parse Hypermail archive for indexing with Swish-e
SYNOPSIS
Using an example data structure like this:
hypermail/
archive/
search/
Create the hypermail archive:
$ cd hypermail
$ hypermail -i -d archive < messages.mbox
Create a swish-e config file:
$ cd search
$ cat swish.conf
# config for indexing hypermail v2.1.8 archives
IndexDir ./index_hypermail.pl
SwishProgParameters ../archive
MetaNames swishtitle name email
PropertyNames name email
IndexContents HTML* .html
StoreDescription HTML* <body> 100000
UndefinedMetaTags ignore
Copy index_hypermail.pl to the current directory. Swish-e installs index_hypermail.pl in the $prefix/share/doc/swish-e/examples/prog-bin directory, where $prefix is typically "/usr/local" or simply "/usr" on some distributions.
$ cp /usr/local/share/doc/swish-e/example/prog-bin/index_hypermail .
Then
Index the documents:
$ swish-e -c swish.conf -S prog
Now create the search interface:
$ cp /usr/local/lib/swish-e/swish.cgi .
$ cat .swishcgi.conf
$ENV{TZ} = 'UTC'; # display dates in UTC format
return {
title => "Search the Foo List Archive",
display_props => [qw/ name email swishlastmodified /],
sorts => [qw/swishrank swishtitle email swishlastmodified/],
metanames => [qw/swishdefault swishtitle name email/],
name_labels => {
swishrank => 'Rank',
swishtitle => 'Subject Only',
name => "Poster's Name",
email => "Poster's Email",
swishlastmodified => 'Message Date',
swishdefault => 'Subject & Body',
},
highlight => {
package => 'SWISH::PhraseHighlight',
xhighlight_on => '<font style="background:#FFFF99">',
xhighlight_off => '</font>',
meta_to_prop_map => { # this maps search metatags to display properties
swishdefault => [ qw/swishtitle swishdescription/ ],
swishtitle => [ qw/swishtitle/ ],
email => [ qw/email/ ],
name => [ qw/name/ ],
swishdocpath => [ qw/swishdocpath/ ],
},
},
};
Setup web server (OS/web server dependent):
/var/www # ln -s /path/to/hypermail/search
/var/www # ln -s /path/to/hypermail/archive
and maybe tell apache to run the script:
$ cat .htaccess
Deny from all
<files swish.cgi>
Allow from all
SetHandler cgi-script
Options +ExecCGI
</files>
-- Bill Moseley moseley_at_hank.orgReceived on Fri 06 Feb 2004 07:38:16 AM GMT
This archive was generated by hypermail 2.3.0 : Sat 13 Mar 2010 03:46:12 AM GMT GMT