stackit.guru
DE

OpenSearch auf STACKIT – Managed Such- und Analyse-Cluster

#database
database opensearch search

OpenSearch auf STACKIT – Managed Such- und Analyse-Cluster

Volltextsuche, Log-Analyse oder Echtzeit-Dashboards – wenn du große Datenmengen durchsuchbar und analysierbar machen willst, ist OpenSearch das richtige Werkzeug. STACKIT bietet einen managed OpenSearch-Service, der dir den Betrieb des Clusters abnimmt.

Was ist OpenSearch?

OpenSearch ist eine Open-Source-Such- und Analyse-Engine auf Basis von Apache Lucene:

  • Volltextsuche – Durchsuche Millionen von Dokumenten in Millisekunden mit Relevanz-Scoring
  • Log-Analyse – Zentralisiere und analysiere Logs aus allen deinen Services
  • Dashboards – Erstelle Visualisierungen und Echtzeit-Dashboards mit OpenSearch Dashboards
  • Skalierbar – Horizontale Skalierung über mehrere Knoten für große Datenmengen
  • RESTful API – Alle Operationen über eine einfache HTTP/JSON-Schnittstelle

:::info Managed OpenSearch auf STACKIT kümmert sich um Cluster-Management, Backups und Updates – du fokussierst dich auf deine Daten. :::

Tutorial: OpenSearch auf STACKIT nutzen

1. OpenSearch-Instanz erstellen

stackit opensearch instance create \
  --name my-search \
  --project-id your-project-id \
  --plan-name cluster-small

2. Credentials anlegen

stackit opensearch credentials create \
  --instance-name my-search \
  --project-id your-project-id

3. Index mit Mapping erstellen

curl -X PUT "https://your-opensearch-host:9200/produkte" \
  -u "your-user:your-password" \
  -H "Content-Type: application/json" \
  -d '{
    "mappings": {
      "properties": {
        "name":        { "type": "text", "analyzer": "german" },
        "beschreibung": { "type": "text", "analyzer": "german" },
        "preis":       { "type": "float" },
        "kategorie":   { "type": "keyword" },
        "erstellt_am": { "type": "date" }
      }
    }
  }'

4. Dokumente indexieren

# Einzelnes Dokument
curl -X POST "https://your-opensearch-host:9200/produkte/_doc" \
  -u "your-user:your-password" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "STACKIT Cloud Server",
    "beschreibung": "Hochperformanter virtueller Server in der deutschen Cloud",
    "preis": 29.99,
    "kategorie": "compute",
    "erstellt_am": "2026-03-26"
  }'

# Bulk-Import
curl -X POST "https://your-opensearch-host:9200/_bulk" \
  -u "your-user:your-password" \
  -H "Content-Type: application/x-ndjson" \
  --data-binary @produkte.ndjson

5. Suche ausführen

# Volltextsuche mit Boosting
curl -X GET "https://your-opensearch-host:9200/produkte/_search" \
  -u "your-user:your-password" \
  -H "Content-Type: application/json" \
  -d '{
    "query": {
      "multi_match": {
        "query": "Cloud Server",
        "fields": ["name^2", "beschreibung"]
      }
    }
  }'

# Filtern und Aggregieren
curl -X GET "https://your-opensearch-host:9200/produkte/_search" \
  -u "your-user:your-password" \
  -H "Content-Type: application/json" \
  -d '{
    "query": {
      "bool": {
        "must": { "match": { "beschreibung": "Cloud" } },
        "filter": { "range": { "preis": { "lte": 50 } } }
      }
    },
    "aggs": {
      "nach_kategorie": {
        "terms": { "field": "kategorie" }
      }
    }
  }'

6. Logs mit Filebeat einliefern

# filebeat.yml
output.opensearch:
  hosts: ["https://your-opensearch-host:9200"]
  username: "your-user"
  password: "your-password"
  index: "logs-%{+yyyy.MM.dd}"
  ssl.verification_mode: full

:::tip Nutze den german-Analyzer für deutschsprachige Inhalte – er berücksichtigt Stemming und Stoppwörter. :::

Nächste Schritte

  • Verbinde OpenSearch Dashboards für visuelle Datenexploration und Monitoring
  • Richte Index-Lifecycle-Policies ein, um alte Indizes automatisch zu löschen
  • Implementiere Synonyme und benutzerdefinierte Analyzer für bessere Suchergebnisse
  • Nutze Alerting-Plugins, um bei bestimmten Log-Mustern benachrichtigt zu werden