1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154
|
;-*- outline -*-
"swish++ -- A Mail Indexing System for Humans"
* swish++ + Email
Swish++ is great for indexing and later, of course, searching and
retrieving your old emails.
!!! Swish++ searches on a per file basis, so its use only makes sense
with one-file-per-message systems (like Maildir, gnus nnml, mh ... and
not with mbox based storage -- use grepmail instead or just switch
your mail system, especially with a high volume of archived messages)
** Indexing of emails
swish++ provides a specific module for this purpose
*** index example:
pwd = ~/Mail
index++ -v3 -s stop_words -e 'mail:*' -E 'Incomin*' -E '*~'
./archive ./Ich ./drafts ./maintainer ./maintainer-debian
-e denotes the module, -E excludes file-pattern and -s indicates a
specific stop word file
(man index++)
*** cron
If you want always "fresh" indexes you need the help of cron.
**** cron sample
41 06 * * * /usr/bin/index++ -s /home/YOU/Mail/stop_words -e 'mail:*' -E \
'Incomin*' -E '*~' -E '*.alt' \
--config-file=/home/YOU/Mail/swish++.config \
--index-file=/home/YOU/Mail/swish++.index /home/YOU/Mail/archive /home/YOU/Mail/Ich /home/YOU/Mail/drafts /home/YOU/Mail/maintainer 2>&1
"Index every day at 6:41 the mentioned directories (recursively - the
default) use a config-file and create the index in /home/YOU/Mail; use
the mail module (-e 'mail:*') and don't index certain patterns (-E
...)."
Or put the whole command as a script and execute it from cron:
41 06 * * * /home/YOU/cron_swish++.sh 2>&1
*** search example:
>search++ from = mhummel and swish
# results: 9
100 ./Ich/930 1175 Indexing
58 ./selber/254 1110 Bug#88974 ITA: swish++ -- Simple Web Indexing System for
47 ./selber/301 3270 Re: Bug#129390: swish++: index++ gets a segmentation fault 41 ./selber/338 939 Indexing
[...]
Though this is already quite useful, it doesn't signify the whole
comfort. I bet you want to read the rediscovered email with your
favorite mail reader.
(for search++ options s. man search++ , of course)
* Mail Reader Integration of swish++
** Integration with emacs + gnus + nnir
*** How to use emacs?
Get one year of vacancy and have some kind of remote approach to this digital
epos.
*** How to use gnus?
See above ...
*** gnus + nnir + swish++
In the examples directory you'll find a patched version of nnir.el
(Maybe the small patch will be included at the time you are reading
this.)
**** nnml-back-ends and nnir
***** put nnir.el in your load-path
***** Add the following to your ~/.gnus init-file
(setq nnir-search-engine 'swish++)
;;the following are the default values
(setq nnir-swish++-program "search++") ; the search executable in Debian
;(setq nnir-swish++-index-file "/home/YOU/Mail/swish++.index");
;the index location mail is stored in ~/Mail normally -- the default
(Have a look at Kai's commentaries in nnir.el
Maybe you have to set 'nnir-mail-back-end' but with nnml -- and
having nnml as the default gnus-select-method -- the default is
fine)
***** Interaction within gnus
Type G G and you will be prompted for a query (enter the same as with plain
search++ at the command line).
The search results will form a new group.
Further try G T and enjoy
** Integration with mutt
mutt supports the Maildir format and mh
(http://www.reedmedia.net/misc/mail/mailbox-formats.html and
http://www.courier-mta.org/mbox-vs-maildir/#intro1) well; you don't
need to install qmail to be able to work with maildirs, not even
the MTA needs maildir support s. procmail (even Mail::Audit does
the right thing, discovering a maildir, and accepts to the
Maildir/new directory).
*** swishmutt.sh
(Caveat: You need the procmail package installed -- for the mbox
formatter)
Copy this script to your ~/bin/ directory (or, of course adapt the
settings to your needs)
It's just an example of how you could parse the swish++ results
for mutt. But checking and adapting the variables it should
work out of the box.
Add something like:
macro index "\ch" "!~/bin/swishmutt.sh\nc=sqmbox.tmp\n"
folder-hook sqmbox.tmp set sort=mailbox-order
to your .muttrc file. (Make sure that mutt actually finds the
temporary mbox : sqmbox.tmp -- the script assumes
~/mail/sqmbox.tmp)
The folder-hook is necessary to conserve the search ranking. (The
mailbox order is OK, so no mess with date_sent and the like.)
**** Interaction within mutt
The macro works from within a mail folder. Just press Ctrl-h and
you will be prompted for a query.
Then if everything works fine you will enter a temporary mbox
with the emails ordered corresponding with the search++ results.
MH <mhummel@debian.org>
|