2026-02-17 16:00:34 +01:00
2026-02-18 10:22:44 +01:00
2026-02-17 16:00:34 +01:00
2026-02-18 10:22:44 +01:00
2026-02-17 16:00:34 +01:00
2026-02-17 16:00:34 +01:00
2026-02-17 16:00:34 +01:00
2026-02-17 16:00:34 +01:00
2026-02-17 16:00:34 +01:00
2026-02-17 16:00:34 +01:00
2026-02-17 16:00:34 +01:00
2026-02-17 16:00:34 +01:00
2026-02-17 16:00:34 +01:00
2026-02-17 16:00:34 +01:00
2026-02-17 17:29:40 +01:00
2026-02-17 16:00:34 +01:00
2026-02-18 10:22:44 +01:00
2026-02-18 10:22:44 +01:00
2026-02-17 16:00:34 +01:00

Infraviewer - Volltextsuche für MS SQL Server Express

Eine leistungsstarke Webanwendung zur Durchführung von Volltextsuchen über mehrere Tabellen in einer MS SQL Server Express Datenbank.

Features

  • 🔍 Volltextsuche über mehrere Tabellen gleichzeitig
  • 📊 Übersichtliche Darstellung der Suchergebnisse
  • Schnelle Performance mit Connection Pooling
  • 🎨 Moderne Benutzeroberfläche mit responsivem Design
  • 📝 Einfache Konfiguration der zu durchsuchenden Tabellen und Spalten
  • 🔧 REST API für Integrationen

Installation

Voraussetzungen

  • Node.js (Version 14 oder höher)
  • MS SQL Server Express
  • npm oder yarn

Schritte

  1. Abhängigkeiten installieren:

    npm install
    
  2. Umgebungsvariablen konfigurieren:

    Kopieren Sie .env.example zu .env und passen Sie die Datenbankverbindung an:

    cp .env.example .env
    

    Bearbeiten Sie .env mit Ihren Datenbankzugangsdaten:

    DB_SERVER=localhost
    DB_PORT=1433
    DB_DATABASE=IhreDatenbankName
    DB_USER=IhrBenutzername
    DB_PASSWORD=IhrPasswort
    DB_ENCRYPT=true
    DB_TRUST_SERVER_CERTIFICATE=true
    PORT=3000
    
  3. Suchkonfiguration anpassen:

    Öffnen Sie services/searchService.js und passen Sie das SEARCH_CONFIG Array an Ihre Tabellen an:

    const SEARCH_CONFIG = [
      {
        tableName: 'IhreTabellenName',
        columns: ['Spalte1', 'Spalte2', 'Spalte3'],
        primaryKey: 'ID'
      },
      // Weitere Tabellen hinzufügen...
    ];
    
  4. Server starten:

    npm start
    

    Für Entwicklung mit automatischem Neustart:

    npm run dev
    
  5. Anwendung öffnen:

    Öffnen Sie Ihren Browser und navigieren Sie zu: http://localhost:3000

Verwendung

Web-Oberfläche

  1. Öffnen Sie die Anwendung in Ihrem Browser
  2. Geben Sie Ihren Suchbegriff in das Suchfeld ein
  3. Klicken Sie auf "Suchen" oder drücken Sie Enter
  4. Die Ergebnisse werden übersichtlich nach Tabellen gruppiert angezeigt

API-Endpunkte

Suche durchführen

GET /api/search?q=suchbegriff

Antwort:

{
  "success": true,
  "searchTerm": "suchbegriff",
  "totalMatches": 15,
  "tablesSearched": 10,
  "results": [
    {
      "tableName": "Kunden",
      "matchCount": 5,
      "records": [...]
    }
  ]
}

Verfügbare Tabellen abrufen

GET /api/search/tables

Spalten einer Tabelle abrufen

GET /api/search/tables/:tableName

Suchkonfiguration anzeigen

GET /api/search/config

Health Check

GET /api/health

Konfiguration

Tabellen hinzufügen/ändern

Bearbeiten Sie services/searchService.js und fügen Sie neue Einträge zum SEARCH_CONFIG Array hinzu:

{
  tableName: 'NeueTabelle',           // Name der Tabelle in der Datenbank
  columns: ['Spalte1', 'Spalte2'],    // Spalten, die durchsucht werden sollen
  primaryKey: 'ID'                     // Primärschlüssel der Tabelle
}

Suchverhalten anpassen

Die Suche verwendet standardmäßig das SQL LIKE Pattern mit Wildcards (%suchbegriff%). Dies findet den Suchbegriff überall in den konfigurierten Spalten.

Für weitere Anpassungen können Sie die Funktion buildSearchCondition in services/searchService.js modifizieren.

Projektstruktur

infraviewer/
├── config/
│   └── database.js          # Datenbankkonfiguration
├── services/
│   └── searchService.js     # Such-Logik
├── routes/
│   └── search.js           # API-Routen
├── public/
│   └── index.html          # Web-Oberfläche
├── server.js               # Express-Server
├── package.json            # Abhängigkeiten
├── .env.example           # Beispiel-Umgebungsvariablen
└── README.md              # Diese Datei

Sicherheitshinweise

  • Verwendet parametrisierte Queries zum Schutz vor SQL-Injection
  • .env Datei wird nicht ins Repository commited (.gitignore)
  • Passwörter werden niemals im Code gespeichert
  • ⚠️ Stellen Sie sicher, dass der Datenbankbenutzer nur die benötigten Berechtigungen hat (READ-only für Suche)

Fehlerbehebung

Verbindungsfehler

  • Überprüfen Sie die Datenbankverbindungsparameter in .env
  • Stellen Sie sicher, dass SQL Server läuft und TCP/IP aktiviert ist
  • Prüfen Sie die Firewall-Einstellungen

Tabellen nicht gefunden

  • Überprüfen Sie die Schreibweise der Tabellennamen in SEARCH_CONFIG
  • Stellen Sie sicher, dass der Datenbankbenutzer Leserechte auf die Tabellen hat
  • Verwenden Sie /api/search/tables um alle verfügbaren Tabellen anzuzeigen

Performance-Probleme

  • Erstellen Sie Indizes auf häufig durchsuchten Spalten
  • Reduzieren Sie die Anzahl der durchsuchten Spalten
  • Erwägen Sie die Verwendung von SQL Server Full-Text Search für große Datenmengen

Lizenz

ISC

Support

Bei Fragen oder Problemen öffnen Sie bitte ein Issue im Repository.

Description
No description provided
Readme 264 KiB
Languages
HTML 46.1%
JavaScript 45.6%
Shell 7.9%
Dockerfile 0.4%