You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
3
3
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.
5
5
6
-
Flatcurve ist die neue Volltextsucheauch 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.
7
7
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:
@@ -20,28 +20,27 @@ Anders als bei Solr ist für Flatcurve **kein** weiteres Docker-Volume notwendig
20
20
└── termlist.glass
21
21
```
22
22
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.
25
24
26
25
!!! danger "Wichtig"
27
-
Sollten Sie bisher Solr verwendet haben, ist eine komplette Reindexierung vonnöten, da die beiden FTSEngines **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.
28
27
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.**
30
29
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.
32
31
33
32
[Weiter unten erfahren Sie, wie Sie eine Reindexierung anstoßen können](#fts-datenbank-neu-indizieren-reindex).
34
33
35
34
## FTS-bezogene Dovecot-Befehle
36
35
37
-
### FTS-Datenbank auf Fehler überprüfen und ggfs. reparieren
36
+
### FTS-Datenbank auf Fehler überprüfen und ggf. reparieren
docker-compose exec dovecot-mailcow doveadm fts rescan -A
55
54
```
56
55
57
-
DovecotWiki: "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."
58
57
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.
60
59
61
60
### FTS-Datenbank neu indizieren (Reindex)
62
61
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:
64
63
65
64
=== "docker compose (Plugin)"
66
65
67
66
```bash
68
-
# einzelner Benutzer
67
+
# Einzelner Benutzer
69
68
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
71
70
docker compose exec dovecot-mailcow doveadm index -A '*'
72
71
```
73
72
74
73
=== "docker-compose (Standalone)"
75
74
76
75
```bash
77
-
# einzelner Benutzer
76
+
# Einzelner Benutzer
78
77
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
80
79
docker-compose exec dovecot-mailcow doveadm index -A '*'
81
80
```
82
81
83
82
!!! info "Hinweis"
84
83
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!**
87
84
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.
89
88
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.**
91
90
92
91
### FTS-Datenbank löschen
93
92
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.
95
94
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:
docker-compose exec dovecot-mailcow doveadm fts-flatcurve remove -A '*'
114
113
```
115
114
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.
0 commit comments