PortalaAdapter: chunksize-Floor auf 1500 (#61 Bug 5 follow-up)

Berlin-PARDOK ist von Schriftlichen Anfragen dominiert und liefert ohne
server-side ETYPF-Filter (BE: document_type=None) bei chunksize=100 nur
1-2 Anträge zurück. Damit reicht das Window selbst für limit=20 nicht
aus, um z.B. die A100-Antrag-Drucksache 19/2650 zu finden — und
get_document() liefert None.

Floor bewusst hoch auf 1500 angehoben (vorher 100/500). Bei einem
typischen Verhältnis 1:30 Antrag/Anfrage in BE liefert das ~50 Anträge,
genug für robuste Lookups in den letzten 24 Monaten.

176 Unit-Tests grün.

Refs: #61 Bug 5

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dotty Dotter 2026-04-09 12:23:35 +02:00
parent 060a33ea5f
commit 015b134bc2

View File

@ -754,12 +754,13 @@ class PortalaAdapter(ParlamentAdapter):
return [] return []
# Step 3: fetch the HTML hit list # Step 3: fetch the HTML hit list
# Take a generous chunk so the client-side title filter # Take a generous chunk so der client-side type-filter
# still has enough material to work with. Quick-win for #13 # genug Material zum Filtern hat. Berlin-PARDOK ist
# until the eUI sf-Index for real server-side fulltext is # dominiert von "Schriftliche Anfrage"-Hits und ohne
# reverse-engineered: bump the unfiltered chunk floor and # server-side ETYPF-Filter (BE: document_type=None) liefern
# the query-filtered chunk ceiling. # 100 Roh-Hits oft nur 1-2 Anträge. Floor bewusst hoch.
chunksize = max(limit * 10, 500) if query else max(limit * 2, 100) # Quick-win für #13 + #61 Bug 5.
chunksize = max(limit * 10, 1500)
report_resp = await client.post( report_resp = await client.post(
report_html, report_html,
json={"report_id": report_id, "start": 0, "chunksize": chunksize}, json={"report_id": report_id, "start": 0, "chunksize": chunksize},