File: Email-Indexing-Mini-Howto.txt

package info (click to toggle)
swish%2B%2B 6.1.5-5
  • links: PTS
  • area: main
  • in suites: bullseye, buster
  • size: 2,916 kB
  • ctags: 2,205
  • sloc: ansic: 11,936; lisp: 804; sh: 629; perl: 366; makefile: 80
file content (154 lines) | stat: -rw-r--r-- 4,877 bytes parent folder | download | duplicates (7)
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>