En sökruta som inte fått regler bestämmer dem själv, och valet syns först när någon inte hittar sin post. Fem saker beställer du i klartext: vilka fält sökningen gäller, att stora och små bokstäver ger samma träffar, att å ä ö hittas även när användaren skriver a och o, att en del av ett ord räcker, och vad den tomma träfflistan ska säga. Prova sedan med sex påhittade poster och tio sökningar vars facit du räknat fram innan du rör appen.
Sökrutan byggs sist, och då finns inga regler kvar att följa
När du beskrev appen beskrev du formuläret, listan och kanske utskicket. Sökrutan kom som en eftertanke: ”lägg till en sökruta ovanför listan”. Det är en beställning av en ruta, inte av en sökning. Vad rutan sedan gör med det användaren skriver är fyra eller fem beslut som fattades utan dig.
Fyra utfall är värda att känna igen, för de ser olika ut för användaren men har samma orsak. Det första är att sökningen kräver hela ord. Användaren skriver lundstr och får ingenting, trots att posten heter Lundström. Det andra är att stora och små bokstäver hålls isär, så att svensson inte hittar en post som någon skrev med versaler. Det tredje är att å, ä och ö behandlas som andra bokstäver än a och o, så att asa inte hittar Åsa — och det är precis så en användare med ett annat tangentbord, eller bråttom, faktiskt skriver.
Det fjärde är det som gör de tre andra farliga: en sökning utan träffar visar en tom yta utan text. Användaren ser ingen post, ingen förklaring och ingen väg tillbaka. Slutsatsen blir inte ”jag stavade konstigt” utan ”posten är borta”, och nästa steg är att lägga in den igen. Nu finns den två gånger, och den ena av dem är den som ändras.
Samma mönster som i artikeln om att importera ett befintligt kalkylark gäller här, fast åt andra hållet. Där handlade det om att få in posterna med besked om vilka som inte kom med. Här handlar det om att hitta dem efteråt, och beskedet är lika viktigt.
Fem beslut du fattar åt sökrutan
Varje beslut nedan har en motsvarande rad i beställningstexten längre ned och minst en sökning i facit. Tar du bort ett beslut ur beställningen tappar du också provet som skulle ha avslöjat det.
Ett sjätte beslut hör ihop med filtret, om appen har ett: ska filtret och sökningen kombineras eller ersätta varandra? Kombineras de kan noll träffar bero på filtret snarare än på sökordet, och då är det filtret vyn ska peka på.
Beställningen: en sökning som säger vad den tittade i
Beställningen nedan är skriven för ett medlemsregister med fyra fält. Byt ut namnen i hakparenteserna mot dina egna, men behåll ordningen: först fälten, sedan reglerna för hur sökordet jämförs, sedan träfflistan, sist den tomma vyn och filtret. Den sista meningen är den som gör resten möjlig att kontrollera.
Appen ska ha en sökruta ovanför listan med [medlemmar]. Sökningen ska gälla fälten [Namn], [E-post] och [Ort]. Fältet [Anteckning] ska inte genomsökas. Skriv intill sökrutan, i klartext, vilka fält sökningen gäller. Så ska sökordet jämföras med posterna: - Stora och små bokstäver ska ge samma träffar, i hela ordet. En sökning på svensson ska hitta en post skriven SVENSSON. - Å ska hittas när användaren skriver a, ä när användaren skriver a och ö när användaren skriver o. Det ska gälla åt båda håll, så att en sökning på Öberg också hittar en post som någon skrivit Oberg. - En del av ett ord ska räcka, även när delen börjar inne i ordet: både lundstr och ström ska hitta Lundström. - Mellanslag före och efter det användaren skriver ska strykas, och flera mellanslag mitt i ska räknas som ett. - Sökningen ska inte ändra, spara eller ta bort något i registret. Träfflistan: - Visa antalet träffar ovanför listan, till exempel 3 av 128. - Ett kryss i sökrutan rensar sökningen, och listan visar då alla poster igen. Ger sökningen noll träffar ska det vara en egen vy, inte en tom yta. Vyn ska innehålla: det som söktes, skrivet ordagrant som användaren skrev det; en mening om att ingen post matchade; vilka fält som genomsöktes; ett förslag att prova en kortare del av ordet; och knappen som rensar sökningen. Filtret [Ort] ska kunna kombineras med sökningen, så att listan visar det som stämmer med både filtret och sökordet. Visa vilka filter som är påslagna och låt en knapp stänga av alla på en gång. Blir träfflistan tom med ett filter påslaget ska vyn säga att det beror på både sökordet och filtret, och låta mig stänga av filtret utan att skriva om sökordet. Ändra ingenting i hur posterna sparas eller visas i övrigt. Beskriv först, i klartext och utan kodord, vad sökningen kommer att göra med var och en av de tio sökningarna nedan.
Två rader kan du vilja ändra. Ska anteckningsfältet ingå, flytta det till listan över sökfält och räkna om facit för sökning 1 och 9 nedan — de två sökningarna finns just för att visa vad som händer med fältet. Och kravet att å ska hittas när användaren skriver a betyder inte att å och a är samma bokstav i övrigt. Sorteringen är en annan sak, och den hör hemma i artikeln om svenska i appen.
Testregistret: sex poster du hittar på själv
Prova inte på det riktiga registret först. Sex påhittade poster räcker, och de är påhittade med flit: namnen nedan är testdata, inte personer. Poängen är att varje post bär en egenhet — ett svenskt tecken, versaler, ett sammansatt efternamn eller ett ord som ligger i fel fält — så att en sökning som misslyckas pekar ut vilken regel som saknas.
Skriv in facit på ett papper innan du provar. Det är den ordning som fungerar, för ett facit du läser av efteråt blir lätt en förklaring till det du redan ser.
Testregistret, sex poster i fälten Namn, E-post, Ort och Anteckning. Sökningen gäller Namn, E-post och Ort. 1. Åsa Öberg · asa.oberg@exempel.se · Malmö · Anteckning: tom 2. Erik Lundström · erik@exempel.se · Göteborg · tom 3. MARIA SVENSSON · maria@exempel.se · Umeå · tom 4. Björn Ek · bjorn@exempel.se · Växjö · Anteckning: Åsa är kontaktperson 5. Anna Lind · anna@exempel.se · Stockholm · tom 6. Jan Ohlsson · jan@exempel.se · Örebro · tom Sökning 1: Åsa Facit: 1 träff, post 1. Post 4 ska inte komma med, trots ordet Åsa i anteckningen, eftersom det fältet inte söks i. Sökning 2: asa Facit: 1 träff, post 1. Å skrivet som a. Sökning 3: ÅSA Facit: 1 träff, post 1. Versaler mot en post med gemener. Sökning 4: oberg Facit: 1 träff, post 1. Ö skrivet som o. Sökning 5: lundstr Facit: 1 träff, post 2. Del av ord, från ordets början. Sökning 6: ström Facit: 1 träff, post 2. Del av ord som börjar inne i ordet. Sökning 7: svensson Facit: 1 träff, post 3. Gemener mot en post med versaler. Sökning 8: ␣␣Anna␣␣ (två mellanslag före och efter) Facit: 1 träff, post 5. Samma svar som utan mellanslagen. Sökning 9: kontaktperson Facit: 0 träffar och den tomma vyn. Ordet finns i post 4:s anteckning, som inte söks i. Sökning 10: Kiruna Facit: 0 träffar och den tomma vyn. Ordet finns ingenstans i registret.
Läs av i den ordningen och stanna vid första avvikelsen. Ger sökning 2 noll träffar men sökning 1 en träff är det teckenregeln som saknas, och det är den du beställer om — inte ”sökningen fungerar inte”. Ger sökning 5 en träff men sökning 6 noll är det delen som börjar inne i ordet som inte kom med. Ger sökning 1 två träffar söker appen i anteckningsfältet trots beställningen. Varje sökning bär ett fel, och det är därför de går att använda som felsökning och inte bara som godkänt eller underkänt.
En sökning som ger rätt post plus fyra andra är inte godkänd. Det är så en sökning ser ut när den letar efter varje bokstav för sig i stället för hela sökordet, och det märks inte på sex poster — där ser fem träffar bara ut som en generös sökning. På tvåhundra poster blir samma fel en lista som aldrig blir kortare hur mycket användaren än skriver. Skriv därför ned antalet, inte bara vilken post du väntade dig.
Den tomma träfflistan är en egen vy
Sökning 9 och 10 ger båda noll träffar, men av olika skäl, och det är därför de är två prov och inte ett. Sökning 10 är den enkla: ordet finns inte i registret, och vyn ska säga det. Sökning 9 är den som avslöjar om appen berättar var den letade. Ordet finns i registret — det står i post 4:s anteckning — men inte i något fält sökningen gäller. Utan raden om vilka fält som genomsöktes är den tomma vyn obegriplig just där, eftersom användaren vet att ordet finns.
Den tomma träfflistan liknar den tomma listan innan data finns, men är inte samma sak. Den tomma listan möter en ny användare och ska leda vidare till att lägga in något — artikeln om appens tomma lägen går igenom fyra sådana lägen. Den tomma träfflistan möter någon som redan har hundra poster och nyss skrev fel. Att erbjuda den personen en stor knapp som säger ”Lägg till din första post” är den exakta orsaken till dubbletten i början av den här artikeln.
Prova därför båda i samma omgång: öppna listan med sökrutan tom och läs vad som står, och sök sedan på något som inte finns. Står det samma text i båda lägena är det ett fel att beställa bort.
Filtret räknas med i samma prov
Ett filter, till exempel på ort, gör två saker med sökningen. Det begränsar vad som kan träffa, och det överlever ofta att sökordet ändras. Kombinationen är den vanliga orsaken till att en användare säger att posten försvann: filtret Malmö ligger kvar sedan i förrgår, sökordet stämmer, och träfflistan är tom.
Lägg därför till två sökningar när appen har filter. Slå på filtret Malmö och kör sökning 1 igen — facit är fortfarande en träff. Slå sedan på filtret Umeå och kör sökning 1 — facit är noll träffar, och den tomma vyn ska nu säga att både sökordet och filtret begränsar, och erbjuda att stänga av filtret utan att sökordet skrivs om. Klarar appen det är filtret beställt rätt. Klarar den det inte syns felet inte i de tio sökningarna, eftersom de körs med filtren avstängda.
Spara de tio sökningarna och deras facit som en rad i din provlista och kör om dem efter varje ändring som rör listan. Sökningen är en funktion som slutar fungera av ändringar ingen kopplar till den: ett nytt fält i formuläret, en ny sortering eller en ombyggd lista kan byta ut sökrutan mot en ny som aldrig fick reglerna.
Var beställningen slutar
Beställningen säger ingenting om hur sökningen byggs, och det är avsiktligt. Svarar verktyget med ord som ”index” (en färdig förteckning som hålls vid sidan av listan så att appen slipper läsa igenom varje post) eller ”fuzzy” (att en sökning får ge träff trots att några bokstäver skiljer) behöver du inte ta ställning till dem. Du behöver kontrollera att de tio sökningarna ger det facit du skrev ned. Får du ett förslag som låter komplicerat är frågan tillbaka enkel: vilken av de tio sökningarna blir bättre av det?
Tre saker täcker den här sidan inte. Den första är sortering, alltså i vilken ordning träffarna visas — det är ett eget beslut och för svenska bokstäver hör det till artikeln om svenska i appen. Den andra är verkliga stavfel i flera bokstäver, som Lunström utan d. Det är ett rimligt önskemål, men en sökning som förlåter fel ger också träffar den inte borde ge, och det valet bör göras efter att de tio sökningarna går igenom, inte i stället för dem. Den tredje är stora register: är listan så lång att den visas sida för sida måste träffarna räknas över alla sidor, annars söker appen bara i den sida som råkar visas.
Rätta ett beslut i taget och kör om alla tio sökningarna efter varje ändring, på det sätt guiden om beställningar beskriver. En samlad begäran om att ”göra sökningen smartare” är en beställning utan slutpunkt, och den brukar komma tillbaka som en ny sökruta där två av de tio sökningarna blivit sämre utan att någon märkte det. Beställningen och de tio sökningarna kontrollerades 22 september 2026.
Klart när de tio sökningarna ger facit
Arbetet är klart när alla tio sökningarna ger det antal träffar och de poster du skrev på pappret, när den tomma vyn säger vad som söktes och vilka fält som genomsöktes, när filtret går att stänga av utan att sökordet skrivs om, och när samma tio sökningar körs om efter nästa ändring i listan. Du behöver inte veta hur sökningen byggdes. Du behöver kunna visa att asa hittar posten.
Vilka fält söks det i, och står det intill sökrutan? Vad ser användaren när noll poster matchar? Och när körde jag senast de tio sökningarna med facit?