Skip to content

Zoeken op meerdere woorden waarvan er één veelvoorkomend is geeft na 10 tot 20 seconden HTTP 500, en de pagina meldt "geen resultaten" #146

Description

@monty241

(Was al via Bluesky aangegeven, even for the record)

van Dijk zonder aanhalingstekens is een impliciete AND, en één van de twee woorden komt in vrijwel elk document voor. De dienst doet er ruim tien seconden over en antwoordt dan met HTTP 500 en een HTML-foutpagina. Dezelfde woorden mét aanhalingstekens zijn in twee tienden van een seconde klaar en leveren gewoon vijf treffers op.

Gemeten op 2026-08-15, telkens één verzoek per vorm, met pauzes ertussen:

Zoekopdracht Antwoord Tijd
van Dijk HTTP 500 10,9 s
Ton van Dijk HTTP 500 10,3 s
de stikstof HTTP 500 20,9 s
stikstof van HTTP 500 10,1 s
"van Dijk" HTTP 200, 5 treffers 0,2 s
"stikstof van" HTTP 200, 280 treffers 1,3 s
van HTTP 200, 280 treffers 0,4 s
Dijk HTTP 200, 280 treffers 0,5 s
Ton Dijk HTTP 200, 280 treffers 1,4 s
minister stikstof HTTP 200, 280 treffers 0,6 s

Het gaat dus niet om het aantal woorden en ook niet om de AND als zodanig: Ton Dijk en minister stikstof gaan prima. Het gaat om de AND met een woord dat een groot deel van de index raakt. Losse woorden zijn ook geen probleem, want dan stopt het bij de 280 rijen van punt 01; het duurt pas als de posting lists gecombineerd moeten worden.

Twee dingen maken dit lastiger dan het hoeft te zijn:

  1. De website zelf weet het al en zegt het verkeerd. search.html?q=van+Dijk doet dezelfde POST, krijgt dezelfde 500, en mapt dat op Geen resultaten - probeer "van Dijk". De suggestie is precies goed, maar "geen resultaten" is niet waar: er zijn vijf documenten. Wie het niet controleert, concludeert dat er niets over die persoon geschreven is.
  2. Aan de buitenkant is het niet te onderscheiden van een zoekopdracht met een syntaxfout (punt opentk/03) of van een overbelaste dienst (#139). Alle drie komen terug als 500 met HTML. Een consumer kan dus niet bepalen of hij zijn vraag moet aanpassen, opnieuw moet proberen of moet wachten.

Reproductie

Waargenomen op 2026-08-15. Deze pagina doet de POST en toont na ongeveer elf seconden "geen
resultaten", terwijl er vijf documenten zijn:

https://berthub.eu/tkconv/search.html?q=van+Dijk

Dat er wél treffers zijn, blijkt uit dezelfde woorden als frase:

https://berthub.eu/tkconv/search.html?q=%22van+Dijk%22

In het netwerkverkeer in DevTools van de eerste pagina is te zien dat POST /tkconv/search een 500 geeft.

Verwachting

Eén van deze drie, in deze volgorde van voorkeur:

  1. Antwoord met een resultaat in plaats van met een fout. Als de zoekopdracht te duur is, is een nette 4xx of een JSON-antwoord met een reden en de suggestie die de pagina nu al toont (probeer "van Dijk") genoeg. Dan kan een consumer het automatisch overdoen.
  2. Maak de suggestie op de pagina onderscheidend. "Geen resultaten" hoort er niet te staan als er geen zoekopdracht is uitgevoerd. Iets als "deze zoekopdracht is te breed, probeer "van Dijk"" dekt de lading. Dat kan ook eventueel door in de HTTP 500 een JSON error mee te sturen als niet makkelijk anders kan.
  3. Overweeg het te voorkomen in plaats van te melden, bijvoorbeeld door een AND met een woord dat boven een drempel uitkomt zelf als frase te proberen. Dat is wel meteen de grootste ingreep van de drie en het verandert wat de gebruiker vroeg, dus punt 1 en 2 zijn belangrijker.

Link Back

opentk/07

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions