BE: HAR-Trace + VOLL-Schema-Variante für PortalaAdapter (PARDOK) #15

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

Sub-Issue von #13. Das LSA-Schema (#14) lässt sich 1:1 nicht auf BE/PARDOK übertragen — der Server lehnt die nachgebaute Anfrage mit klarer Fehlermeldung ab:

Error parsing search:
[(((/VOLL "((/TEXT ('\"Schule'\")) AND (/WP 19 OR WP='\"'\"))")) AND (/WP 19 OR WP="")) AND TYP=DOKDBE NOT (1SPERI,SPERI=JA)].
Unable to generate query. Processing aborted.

(getestet gegen pardok.parlament-berlin.de mit lah.lissh als source)

Hypothesen

Mindestens einer der drei Punkte ist BE-spezifisch:

  • Anderer sf-Index: /VOLL ist möglicherweise ein LSA-only-Konstrukt; BE könnte einen anderen Namen für den Volltext-Index haben.
  • Andere Sperre-Regel: NOT (1SPERI,SPERI=JA) ist auf padoka als Permission-Filter sichtbar — pardok hat das Feld evtl. nicht.
  • Anderes Escaping: '" Apostroph-Escapes könnten in lah.lissh anders interpretiert werden.

Was zu tun ist

DevTools-Trace gegen die Live-BE-Instanz, analog zur LSA-Übung in #13:

  1. https://pardok.parlament-berlin.de/portala/ öffnen
  2. F12 → Netzwerk-Tab → Persistieren aktivieren
  3. "Volltextsuche"-Toggle einschalten, "Schule" eintippen, Enter
  4. POST browse.tt.jsonrequest.postData.text als JSON kopieren
  5. HAR-Export speichern, hier in den Chat oder ins Repo legen

Sobald der HAR vorliegt, ist der Patch in _build_fulltext_body ein 5-Minuten-Job — vermutlich nur ein anderer sf-Index oder weggelassene SPERI-Klausel.

Akzeptanzkriterien

  • ADAPTERS["BE"].search("Schule", limit=10) liefert ≥10 echte Anträge ohne Server-Error
  • Anträge enthalten "Schule" in Titel oder Volltext
  • Live-Smoke-Test /api/search-landtag?q=Schule&bundesland=BE ≥10
  • Quick-Win 730-Tage-Window aus #13 kann nach erfolgreichem Server-side Volltext zurückgeschnitten werden (Performance-Win)
Sub-Issue von #13. Das LSA-Schema (#14) lässt sich 1:1 nicht auf BE/PARDOK übertragen — der Server lehnt die nachgebaute Anfrage mit klarer Fehlermeldung ab: ``` Error parsing search: [(((/VOLL "((/TEXT ('\"Schule'\")) AND (/WP 19 OR WP='\"'\"))")) AND (/WP 19 OR WP="")) AND TYP=DOKDBE NOT (1SPERI,SPERI=JA)]. Unable to generate query. Processing aborted. ``` (getestet gegen `pardok.parlament-berlin.de` mit `lah.lissh` als source) ## Hypothesen Mindestens einer der drei Punkte ist BE-spezifisch: - **Anderer sf-Index**: `/VOLL` ist möglicherweise ein LSA-only-Konstrukt; BE könnte einen anderen Namen für den Volltext-Index haben. - **Andere Sperre-Regel**: `NOT (1SPERI,SPERI=JA)` ist auf padoka als Permission-Filter sichtbar — `pardok` hat das Feld evtl. nicht. - **Anderes Escaping**: `'"` Apostroph-Escapes könnten in lah.lissh anders interpretiert werden. ## Was zu tun ist DevTools-Trace gegen die Live-BE-Instanz, analog zur LSA-Übung in #13: 1. https://pardok.parlament-berlin.de/portala/ öffnen 2. F12 → Netzwerk-Tab → Persistieren aktivieren 3. "Volltextsuche"-Toggle einschalten, "Schule" eintippen, Enter 4. `POST browse.tt.json` → `request.postData.text` als JSON kopieren 5. HAR-Export speichern, hier in den Chat oder ins Repo legen Sobald der HAR vorliegt, ist der Patch in `_build_fulltext_body` ein 5-Minuten-Job — vermutlich nur ein anderer sf-Index oder weggelassene SPERI-Klausel. ## Akzeptanzkriterien - [ ] `ADAPTERS["BE"].search("Schule", limit=10)` liefert ≥10 echte Anträge ohne Server-Error - [ ] Anträge enthalten "Schule" in Titel oder Volltext - [ ] Live-Smoke-Test `/api/search-landtag?q=Schule&bundesland=BE` ≥10 - [ ] Quick-Win 730-Tage-Window aus #13 kann nach erfolgreichem Server-side Volltext zurückgeschnitten werden (Performance-Win)
Author
Owner

Verworfen — der Use-Case "echte Server-side Volltextsuche" wird zurückgestellt, weil das Schema zwischen LSA und BE nicht uniform ist (LSA akzeptiert /VOLL, BE lehnt es mit Unable to generate query ab) und ein gemischtes Verhalten der Adapter (NRW+MV mit Volltext, BE+LSA ohne) verwirrender ist als ein einheitlicher Title-Filter überall.

Stattdessen wird die Suche in allen vier Adaptern auf Title + Urheber + Schlagwort über den gesamten Datenbestand der laufenden WP umgestellt, sortiert newest-first. Tracking dafür: #18.

Wenn die Volltextsuche später wieder gewünscht wird (sobald sie für alle vier Adapter gleich umsetzbar ist), kann dieses Issue reopened werden — die HAR-Findings im vorigen Kommentar sind wertvoll und sollten erhalten bleiben.

Verworfen — der Use-Case "echte Server-side Volltextsuche" wird zurückgestellt, weil das Schema zwischen LSA und BE nicht uniform ist (LSA akzeptiert `/VOLL`, BE lehnt es mit `Unable to generate query` ab) und ein gemischtes Verhalten der Adapter (NRW+MV mit Volltext, BE+LSA ohne) verwirrender ist als ein einheitlicher Title-Filter überall. Stattdessen wird die Suche in allen vier Adaptern auf **Title + Urheber + Schlagwort über den gesamten Datenbestand der laufenden WP** umgestellt, sortiert newest-first. Tracking dafür: #18. Wenn die Volltextsuche später wieder gewünscht wird (sobald sie für alle vier Adapter gleich umsetzbar ist), kann dieses Issue reopened werden — die HAR-Findings im vorigen Kommentar sind wertvoll und sollten erhalten bleiben.
Sign in to join this conversation.
No description provided.