Skip to content

Commit fd49081

Browse files
committed
updated fts pages to add more context about options
1 parent 629660a commit fd49081

File tree

2 files changed

+234
-99
lines changed

2 files changed

+234
-99
lines changed
Lines changed: 118 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
!!! success "Neue Volltextsuche Engine"
2-
Mit 2024-12 wurde Solr mit Flatcurve ausgewechselt. Alle bestehenden FTS Indexe sind daher **obsolet** und können entfernt werden.
1+
!!! success "Neue Volltextsuche-Engine"
2+
Mit dem Januar 2025 Update wurde Solr durch Flatcurve ersetzt. Alle bestehenden FTS-Indizes sind daher **obsolet** und können entfernt werden.
33

4-
mailcow weißt auf das alte solr-vol-1 hin und fragt bei jedem Update vorgang, um es entfernen zu lassen, sollte es noch exisiteren.
4+
mailcow verweist auf das alte solr-vol-1 und fragt bei jedem Update-Vorgang, ob es entfernt werden soll, falls es noch existiert.
55

6-
Flatcurve ist die neue Volltextsuche auch auf leistungsschwächeren Systemen besser funktioniert.
6+
Flatcurve ist die neue Volltextsuche, die auch auf leistungsschwächeren Systemen besser funktioniert und langfristig auch zum Standard von Dovecot selbst wird.
77

8-
Anders als bei Solr ist für Flatcurve **kein** weiteres Docker-Volume notwendig. Flatcurve speichert seine FTS-Datenbanken in dem `vmail-index`-Volume und führt zu einer ähnlichen Ordnerstruktur wie:
8+
Anders als bei Solr ist für Flatcurve **kein** weiteres Docker-Volume notwendig. Flatcurve speichert seine FTS-Datenbanken im `vmail-index`-Volume und erzeugt eine ähnliche Ordnerstruktur wie:
99

1010
```
1111
/var/vmail_index/[email protected]/.INBOX/
@@ -20,28 +20,27 @@ Anders als bei Solr ist für Flatcurve **kein** weiteres Docker-Volume notwendig
2020
└── termlist.glass
2121
```
2222

23-
24-
Jeder Unterordner im IMAP-Server erhält so analog einen eigenen `fts-flatcurve`-Ordner mit den jeweiligen Indizes der Mails des Ordners.
23+
Jeder Unterordner im IMAP-Server erhält entsprechend einen eigenen `fts-flatcurve`-Ordner mit den jeweiligen Indizes der Mails des Ordners.
2524

2625
!!! danger "Wichtig"
27-
Sollten Sie bisher Solr verwendet haben, ist eine komplette Reindexierung vonnöten, da die beiden FTS Engines **nicht** untereinander **kompatibel** sind.
26+
Sollten Sie bisher Solr verwendet haben, ist eine komplette Reindexierung erforderlich, da die beiden FTS-Engines **nicht** miteinander **kompatibel** sind.
2827

29-
**Neue E-Mails** werden automatisch **indexiert**, **bestehende Mails** sind allerdings **nicht indexiert**!
28+
**Eine automatische Indexierung des Postfachs wird aktiviert, sobald 20 oder mehr E-Mails eingehen oder eine Volltextsuche durchgeführt wird.**
3029

31-
Wir empfehlen, diese Reindexierung nur unter Aufsicht durchzuführen, da trotz niedriger Systemanforderungen eine übermäßige Systemauslastung nicht ausgeschlossen werden kann!
30+
Wir empfehlen, eine manuelle Reindexierung nur unter Aufsicht durchzuführen, da trotz niedriger Systemanforderungen eine übermäßige Systemauslastung nicht ausgeschlossen werden kann.
3231

3332
[Weiter unten erfahren Sie, wie Sie eine Reindexierung anstoßen können](#fts-datenbank-neu-indizieren-reindex).
3433

3534
## FTS-bezogene Dovecot-Befehle
3635

37-
### FTS-Datenbank auf Fehler überprüfen und ggfs. reparieren
36+
### FTS-Datenbank auf Fehler überprüfen und ggf. reparieren
3837

3938
=== "docker compose (Plugin)"
4039

4140
```bash
4241
# Einzelbenutzer
4342
docker compose exec dovecot-mailcow doveadm fts rescan -u user@domain
44-
# alle Benutzer
43+
# Alle Benutzer
4544
docker compose exec dovecot-mailcow doveadm fts rescan -A
4645
```
4746

@@ -50,67 +49,156 @@ Jeder Unterordner im IMAP-Server erhält so analog einen eigenen `fts-flatcurve`
5049
```bash
5150
# Einzelbenutzer
5251
docker-compose exec dovecot-mailcow doveadm fts rescan -u user@domain
53-
# alle Benutzer
52+
# Alle Benutzer
5453
docker-compose exec dovecot-mailcow doveadm fts rescan -A
5554
```
5655

57-
Dovecot Wiki: "Scannt, welche Mails im Volltextsuchindex vorhanden sind und vergleicht diese mit den tatsächlich in den Postfächern vorhandenen Mails. Dies entfernt Mails aus dem Index, die bereits gelöscht wurden und stellt sicher, dass der nächste doveadm-Index alle fehlenden Mails (falls vorhanden) indiziert."
56+
Dovecot-Wiki: "Scannt, welche Mails im Volltextsuchindex vorhanden sind, und vergleicht diese mit den tatsächlich in den Postfächern vorhandenen Mails. Dies entfernt Mails aus dem Index, die bereits gelöscht wurden, und stellt sicher, dass der nächste doveadm-Index alle fehlenden Mails (falls vorhanden) indiziert."
5857

59-
Dies indiziert **nicht** eine Mailbox neu. Es repariert im Grunde einen gegebenen Index.
58+
Dies indiziert **nicht** eine Mailbox neu, sondern repariert lediglich einen vorhandenen Index.
6059

6160
### FTS-Datenbank neu indizieren (Reindex)
6261

63-
Wenn Sie die Daten sofort neu indizieren wollen, können Sie den folgenden Befehl ausführen, wobei `*` auch eine Postfachmaske wie 'Sent' sein kann. Sie müssen diese Befehle nicht ausführen, aber es wird die Dinge ein wenig beschleunigen:
62+
Wenn Sie die Daten sofort neu indizieren möchten, können Sie den folgenden Befehl ausführen, wobei `*` auch eine Postfachmaske wie 'Sent' sein kann. Diese Befehle sind optional, können jedoch den Prozess beschleunigen:
6463

6564
=== "docker compose (Plugin)"
6665

6766
```bash
68-
# einzelner Benutzer
67+
# Einzelner Benutzer
6968
docker compose exec dovecot-mailcow doveadm index -u user@domain '*'
70-
# alle Benutzer, aber offensichtlich langsamer und gefährlicher
69+
# Alle Benutzer, langsamer und risikoreicher
7170
docker compose exec dovecot-mailcow doveadm index -A '*'
7271
```
7372

7473
=== "docker-compose (Standalone)"
7574

7675
```bash
77-
# einzelner Benutzer
76+
# Einzelner Benutzer
7877
docker-compose exec dovecot-mailcow doveadm index -u user@domain '*'
79-
# alle Benutzer, aber offensichtlich langsamer und gefährlicher
78+
# Alle Benutzer, langsamer und risikoreicher
8079
docker-compose exec dovecot-mailcow doveadm index -A '*'
8180
```
8281

8382
!!! info "Hinweis"
8483
Die Indizierung **wird** einige Zeit in Anspruch nehmen.
85-
86-
Es besteht, die Möglichkeit einer übermäßig starken Systemnutzung, bis hin zu Systemabstürzen in seltenen Fällen. **Überwachen Sie also den Indizierungsprozess und Ihre Systemauslastung wachsam!**
8784

88-
Da die Neuindizierung teilweise etwas fragil und gerade im Bezug auf Systemressourcen sensibel reagieren kann, haben wir sie vorerst nicht in die mailcow UI integriert.
85+
Es besteht die Möglichkeit einer übermäßigen Systemauslastung, bis hin zu Systemabstürzen in seltenen Fällen. **Beobachten Sie daher den Indizierungsprozess und Ihre Systemauslastung aufmerksam!**
86+
87+
Da die Neuindizierung ressourcenintensiv sein kann, wurde sie nicht in die mailcow-UI integriert.
8988

90-
**Sie müssen sich manuell via CLI um eventuelle Fehler beim Re-Indizieren einer Mailbox kümmern.**
89+
**Fehler beim Re-Indizieren müssen manuell über die CLI behoben werden.**
9190

9291
### FTS-Datenbank löschen
9392

94-
mailcow wird die Indexdaten eines Benutzers automatisch löschen, wenn die entsprechende Mailbox gelöscht wird.
93+
mailcow entfernt die Indexdaten eines Benutzers automatisch, wenn das entsprechende Postfach gelöscht wird.
9594

96-
Alternativ kann der Index für Flatcurve via CLI manuell gelöscht werden:
95+
Alternativ können Sie den Index für Flatcurve manuell über die CLI entfernen:
9796

9897
=== "docker compose (Plugin)"
9998

10099
```bash
101-
# einzelner Benutzer
100+
# Einzelner Benutzer
102101
docker compose exec dovecot-mailcow doveadm fts-flatcurve remove -u user@domain '*'
103-
# alle Benutzer
102+
# Alle Benutzer
104103
docker compose exec dovecot-mailcow doveadm fts-flatcurve remove -A '*'
105104
```
106105

107106
=== "docker-compose (Standalone)"
108107

109108
```bash
110-
# einzelner Benutzer
109+
# Einzelner Benutzer
111110
docker-compose exec dovecot-mailcow doveadm fts-flatcurve remove -u user@domain '*'
112-
# alle Benutzer
111+
# Alle Benutzer
113112
docker-compose exec dovecot-mailcow doveadm fts-flatcurve remove -A '*'
114113
```
115114

115+
## FTS-spezifische Optionen in mailcow.conf
116+
117+
mailcow liefert standardmäßig niedrige Parameter für die neue FTS-Engine, um sie auch auf schwächeren Systemen nutzbar zu machen.
118+
119+
Für leistungsstärkere Systeme können Sie einige Parameter anpassen, um eine effizientere Indexierung zu ermöglichen.
120+
121+
### `SKIP_FTS` (Volltextsuche deaktivieren)
122+
123+
In der mailcow.conf können Sie die Volltextsuche komplett deaktivieren. Dies ist vor allem auf Low-End-Systemen zu empfehlen, welche Probleme haben mailcow sowie die Indexierung flüssig laufen zu lassen.
124+
125+
Flatcurve ist ressourcenschonender als Solr, benötigt jedoch mehr Speicherplatz und gegebenenfalls mehr CPU-Leistung (abhängig vom Setup).
126+
127+
!!! abstract "mailcow-Standard"
128+
^^Standardmäßig^^ ist dieser Parameter auf **n** gesetzt, wodurch die Volltextsuche aktiviert ist.
129+
130+
??? success "Best Practice"
131+
Lassen Sie die Indexierung zunächst aktiviert. Sollte die neue FTS-Engine zu viele Ressourcen beanspruchen, können Sie die Einstellung später anpassen.
132+
133+
### `FTS_PROCS` (Anzahl der Indexierungsprozesse)
134+
135+
Mit der Variablen `FTS_PROCS` in der mailcow.conf können Sie die Anzahl der Indexierungsprozesse anpassen, die gleichzeitig arbeiten.
136+
137+
!!! abstract "mailcow-Standard"
138+
^^Standardmäßig^^ ist dieser Wert auf **1 Thread** limitiert.
139+
140+
!!! danger "**ACHTUNG**"
141+
Die Indexierungsprozesse verwenden jeweils einen CPU-Thread vollständig. Systeme mit wenigen Kernen sollten eine niedrige Anzahl einstellen, um die restliche Systemleistung nicht zu beeinträchtigen.
142+
143+
??? success "Best Practice"
144+
Planen Sie etwa **die Hälfte der CPU-Threads** Ihres Systems für die Indexierungsprozesse ein. Bei ungerader Kernzahl verwenden Sie die niedrigere Anzahl an Threads, um genügend Ressourcen für das Hauptsystem zu lassen.
145+
146+
**Dual-Core**- oder **Single-Core-Systeme** sollten die Volltextsuche deaktivieren.
147+
148+
### `FTS_HEAP` (Max. Arbeitsspeicher pro Indexierungsprozess)
149+
150+
Mit `FTS_HEAP` in der mailcow.conf legen Sie den Arbeitsspeicher pro Indexierungsprozess fest.
151+
152+
!!! abstract "mailcow-Standard"
153+
^^Standardmäßig^^ ist dieser Wert auf **128 MB** ==pro Prozess== limitiert.
154+
155+
??? success "Best Practice"
156+
Weisen Sie jedem Prozess idealerweise **512 MB** Arbeitsspeicher zu. Systeme mit weniger als 8 GB RAM sollten bei **128 MB** bleiben oder höchstens auf 256 MB erhöhen.
157+
158+
Bei ausgeschöpftem RAM kann Dovecot zwar weiterarbeiten, wird jedoch langsamer.
159+
160+
## Erweiterte Konfigurationsmöglichkeiten
161+
162+
Die Integration von Flatcurve erlaubt es, FTS-Optionen individuell anzupassen.
163+
164+
!!! notice "Hinweis"
165+
Jedes Setup ist anders, daher gibt es kein allgemeingültiges Optimum.
166+
167+
**Die Erfahrung mit der Engine variiert je nach System.**
168+
169+
Beispielsweise können Sie eine detailliertere Volltextsuche (Substring Search) aktivieren, die genauere Ergebnisse liefert, aber auch mehr Speicherplatz und Zeit erfordert.
170+
171+
### Substring Search aktivieren (Detailiertere Volltextsuche)
172+
173+
Bearbeiten Sie die Datei `data/conf/dovecot/conf.d/fts.conf`:
174+
175+
```conf
176+
plugin {
177+
[...]
178+
179+
fts_flatcurve_substring_search=yes # Kann entweder yes oder no sein
180+
}
181+
```
182+
183+
Ein Neustart von Dovecot aktiviert die Änderungen:
184+
185+
=== "docker compose (Plugin)"
186+
187+
```bash
188+
docker compose restart dovecot-mailcow
189+
```
190+
191+
=== "docker-compose (Standalone)"
192+
193+
```bash
194+
docker-compose restart dovecot-mailcow
195+
```
196+
197+
### Weitere Tweaks
198+
199+
Wir nehmen gerne von der Community vorgeschlagene Tweaks auf.
200+
201+
In der Zwischenzeit können Sie sich die offiziellen Dokumentationen zu Dovecot und Flatcurve ansehen:
116202

203+
- [Dovecot FTS Modul Dokumentation](https://doc.dovecot.org/2.3/settings/plugin/fts-plugin/){:target="_blank"}
204+
- [Flatcurve FTS Engine Dokumentation](https://slusarz.github.io/dovecot-fts-flatcurve/configuration.html){:target="_blank"}

0 commit comments

Comments
 (0)