Korrektes Mapping ist entscheidend für eine effiziente Suche.
Typen¶
- text — Volltext
- keyword — Exact Match, Aggregationen
- integer/float
- date
- nested
- geo_point
Mapping¶
PUT /articles
{
"mappings": {
"properties": {
"title": {"type":"text","analyzer":"german"},
"slug": {"type":"keyword"},
"tags": {"type":"keyword"},
"published_at": {"type":"date"}
}
}
}
Best Practices fuer Mapping¶
Verwenden Sie beim Mapping-Design immer den keyword-Typ fuer Felder, nach denen Sie filtern oder aggregieren (Tags, Status, Identifikatoren). Den text-Typ verwenden Sie nur fuer Felder, in denen Sie Volltextsuche benoetigen. Fuer Felder wie Titel, bei denen Sie beides brauchen, verwenden Sie Multi-Field-Mapping mit sowohl text- als auch keyword-Subtyp.
Achten Sie auf Mapping Explosion — wenn Sie dynamisch Hunderte neuer Felder hinzufuegen, verbraucht Elasticsearch grosse Mengen Speicher fuer Metadaten. Setzen Sie dynamic auf strict oder false fuer Produktionsindizes. Fuer lokalisierte Daten verwenden Sie einen Analyzer mit dem entsprechenden Sprach-Stemmer und Stoppwoertern, was die Relevanz der Suchergebnisse erheblich verbessert.
Mapping = Grundlage¶
Explizit definieren. Dynamic = nur für Prototypen.