UI: Zwei getrennte Suchfelder — DB-Suche vs. Landtagsserver-Suche #16

Closed
opened 2026-04-08 16:40:26 +02:00 by tobias · 1 comment
Owner

Problem

Aktuell teilt sich ein einziges Suchfeld auf der Startseite zwei sehr unterschiedliche Datenquellen:

  1. Interne DB-Suche (/api/search) — sucht in den ~25 bereits analysierten Anträgen, die wir in der gwoe-antraege.db haben. Liefert direkt die Bewertung mit GWÖ-Score, Wahlprogramm-Treue, Verbesserungsvorschlägen.
  2. Landtags-Live-Suche (/api/search-landtag) — sucht über die Adapter (NRWAdapter, ParLDokAdapter, PortalaAdapter) gegen die Live-Backends der Parlamente und liefert Drucksachen, die noch NICHT analysiert sind.

Beide haben ganz andere Semantik (analysiertes Wissen vs. Live-Roh-Daten) und ganz andere Latenz (lokal-instant vs. 5–25s gegen Drittsysteme). Das im selben Eingabefeld zu mischen ist verwirrend — User wissen nie, was sie gerade bekommen.

Lösung

Zwei sichtbar getrennte Suchblöcke auf der Startseite:

┌─────────────────────────────────────────────┐
│  🔍 Bewertete Anträge (DB)                  │
│  [_____________________]  [Suchen]          │
│  → liefert Treffer aus gwoe-antraege.db     │
└─────────────────────────────────────────────┘

┌─────────────────────────────────────────────┐
│  🌐 Landtagsserver durchsuchen              │
│  Bundesland: [NRW ▼]                        │
│  [_____________________]  [Suchen]          │
│  ☐ Volltextsuche (siehe #17)                │
│  → liefert Live-Treffer für Neuanalyse      │
└─────────────────────────────────────────────┘

Akzeptanzkriterien

  • Templates templates/index.html (oder wo auch immer das Hauptformular liegt) hat zwei klar getrennte Blöcke mit eigenen Submit-Buttons
  • Die DB-Suche schickt an /api/search, die Landtagssuche an /api/search-landtag
  • Beim DB-Block ist kein Bundesland-Selector — die DB hat ein Bundesland-Feld pro Assessment, das nur als Filter optional sein muss
  • Beim Landtag-Block ist der Bundesland-Selector zwingend (weil die Adapter pro Bundesland verschieden sind)
  • Visuell klar dass es zwei verschiedene Quellen sind (Überschrift + evtl. Border)

Hintergrund

Aufgekommen während der Adapter-Volltext-Arbeit zu #13: solange die Suche in den vier Adaptern inhomogen ist (NRW + MV mit echtem Volltext, BE/LSA nur Title-Filter), muss der User wenigstens sehen können, dass eine 0-Treffer-Antwort möglicherweise an der Adapter-Limitation liegt und nicht an seiner Suchanfrage.

## Problem Aktuell teilt sich ein einziges Suchfeld auf der Startseite zwei sehr unterschiedliche Datenquellen: 1. **Interne DB-Suche** (`/api/search`) — sucht in den ~25 bereits analysierten Anträgen, die wir in der `gwoe-antraege.db` haben. Liefert direkt die Bewertung mit GWÖ-Score, Wahlprogramm-Treue, Verbesserungsvorschlägen. 2. **Landtags-Live-Suche** (`/api/search-landtag`) — sucht über die Adapter (`NRWAdapter`, `ParLDokAdapter`, `PortalaAdapter`) gegen die Live-Backends der Parlamente und liefert Drucksachen, die noch NICHT analysiert sind. Beide haben ganz andere Semantik (analysiertes Wissen vs. Live-Roh-Daten) und ganz andere Latenz (lokal-instant vs. 5–25s gegen Drittsysteme). Das im selben Eingabefeld zu mischen ist verwirrend — User wissen nie, was sie gerade bekommen. ## Lösung Zwei sichtbar getrennte Suchblöcke auf der Startseite: ``` ┌─────────────────────────────────────────────┐ │ 🔍 Bewertete Anträge (DB) │ │ [_____________________] [Suchen] │ │ → liefert Treffer aus gwoe-antraege.db │ └─────────────────────────────────────────────┘ ┌─────────────────────────────────────────────┐ │ 🌐 Landtagsserver durchsuchen │ │ Bundesland: [NRW ▼] │ │ [_____________________] [Suchen] │ │ ☐ Volltextsuche (siehe #17) │ │ → liefert Live-Treffer für Neuanalyse │ └─────────────────────────────────────────────┘ ``` ## Akzeptanzkriterien - [ ] Templates `templates/index.html` (oder wo auch immer das Hauptformular liegt) hat zwei klar getrennte Blöcke mit eigenen Submit-Buttons - [ ] Die DB-Suche schickt an `/api/search`, die Landtagssuche an `/api/search-landtag` - [ ] Beim DB-Block ist kein Bundesland-Selector — die DB hat ein Bundesland-Feld pro Assessment, das nur als Filter optional sein muss - [ ] Beim Landtag-Block ist der Bundesland-Selector zwingend (weil die Adapter pro Bundesland verschieden sind) - [ ] Visuell klar dass es zwei verschiedene Quellen sind (Überschrift + evtl. Border) ## Hintergrund Aufgekommen während der Adapter-Volltext-Arbeit zu #13: solange die Suche in den vier Adaptern inhomogen ist (NRW + MV mit echtem Volltext, BE/LSA nur Title-Filter), muss der User wenigstens *sehen können*, dass eine 0-Treffer-Antwort möglicherweise an der Adapter-Limitation liegt und nicht an seiner Suchanfrage.
tobias added the
ui-frontend
label 2026-04-08 23:16:35 +02:00
Author
Owner

Erledigt durch Phase D / Commit 26f13bd. Search-Row in index.html aufgespalten in zwei klar getrennte Inputs (DB / Landtag), beide mit eigenem Trigger. Live verifiziert auf https://gwoe.toppyr.de/.

Erledigt durch Phase D / Commit `26f13bd`. Search-Row in `index.html` aufgespalten in zwei klar getrennte Inputs (DB / Landtag), beide mit eigenem Trigger. Live verifiziert auf https://gwoe.toppyr.de/.
Sign in to join this conversation.
No description provided.