Har du oplevet det her? Du og din kollega sidder med det samme varekartotek i Business Central. I søger begge på “London blå”. Du får varen frem med det samme, men din kollega får ingenting. Samme system, samme data, samme søgeord, to forskellige resultater. Hvad sker der lige?

Svaret er, at I ikke søger på samme måde. Med Business Central 2024 wave 2 (BC25) er der nemlig kommet to søgninger i lister: den klassiske (Legacy Search) og den nye (Modern Search). De kan slås til og fra per bruger, så du kan udmærket køre den nye, mens din kollega stadig kører den gamle. Og de to søgninger finder ikke samme svar.
Den gamle søgning leder efter din tekst præcist, som du skrev den og i præcis den rækkefølge, på tværs af alle kolonner. Varen hedder “LONDON-drejestol, blå”, og fordi der står et “drejestol” mellem “London” og “blå”, giver den op, når du skriver “London blå”. Hvis du hellere vil have et hit, skal du ramme teksten, som den står, altså “drejestol, blå” med komma og det hele. Men hvem husker lige det?
Den nye søgning er ord-baseret. Den deler din tekst op i ord og finder posten, som indeholder dem alle, uanset rækkefølge og uanset hvad der står imellem. Du behøver hverken at huske “drejestol” eller den rigtige rækkefølge. “London blå” finder stolen, og “blå London” gør præcis det samme. Det er ret smart, og det ligner mere måden, man søger på i Google og andre systemer, end den måde man plejede at filtrere og søge på i et ERP-system.
Den egentlige forskel: * og |
Det er her, de to for alvor skiller sig fra hinanden. Den gamle søgning forstår de klassiske filteroperatorer. Det gør den nye ikke.
Tag * (stjerne), det gode gamle wildcard for “et eller andet her”. I den gamle søgning kan du sætte den, hvor du vil. “Lond*” finder alt, som begynder med “Lond”, “*blå” fanger det, der ender på “blå”, og “*stol*” finder alt med “stol” et sted i teksten, også midt inde i et ord som “drejestol”. I den nye søgning kan du ikke bruge stjernen sådan. Den deler bare din tekst op i ord og leder efter hele ord, som begynder med det, du skrev. Derfor finder “stol” ikke “drejestol”, for ordet begynder jo med “dreje”. (En stjerne i enden af et ord forstår den godt, men det er ordlogik, ikke det frie wildcard fra før.)
| (lodret streg eller pibe) er den samme historie. I den gamle søgning betyder den “enten eller”, så “stol|bord” giver dig både stole og borde. Den nye søgning kan slet ikke bruge den. Skriver du flere ord, kræver den dem alle, altså et usynligt “og”. “London blå” betyder London OG blå, aldrig London ELLER blå.
Så pointen er ikke kun, at den nye søgning er smartere til hverdagssøgninger. Det er en anden slags søgning. Den gamle styrer du med operatorer som * og |. Den nye er ordbaseret og ignorerer dem. Kender du tricksene med stjerner og lodrette streger fra i gamle dage, skal du altså tilbage til den gamle søgning (eller bruge rigtig filtrering) for at få dem til at virke.
Sådan skifter du søgemetoden
Søgefeltet finder du øverst på enhver liste, og du kan åbne det med F3. Klik på pilen i feltet, og vælg enten “Use modern search (faster)” eller “Use legacy search”.

Er den nye søgning slået til for dit miljø, er det den, der bruges som standard på de lister, som understøtter den. Er valget slet ikke der, er funktionen nok ikke aktiveret endnu, og det sker under Feature Management med indstillingen “Use optimized text search in lists”.
To ting mere er værd at vide. Den nye søgning leder kun i de kolonner, som Microsoft eller din leverandør har gjort klar til det, så finder du ikke det, du leder efter, så skift tilbage til den gamle og prøv igen. Og søgningen kigger aldrig i billeder eller i beregnede felter (FlowFields), så fx en saldo, som regnes ud løbende, kan du ikke søge frem på den her måde.
Bag kulissen (for dig der koder i AL)
Det her er ikke kun en knap i klienten. Bruger du Page Inspection og kigger på filtrene, mens du søger “London dreje blå”, kan du se, at Business Central oversætter det til &&London*&&&dreje*&&&blå*. Hvert ord bliver til && + ordet + *, og ordene bindes sammen med &. Det er den nye &&-syntaks i SetFilter(), som du selv kan bruge i din kode, hvis et felt er sat op med OptimizeForTextSearch. Vil du se det brugt i standarden, ligger der et godt eksempel i codeunit 2680 “Data Search in Table”. Husk bare at splitte søgeteksten op i ord først. Ellers får du ingen resultater, og så sidder du og undrer dig (det gjorde jeg).

For langt de fleste brugere er pointen dog den enkle: Skriv de ord, du kan huske, i den rækkefølge du nu kommer i tanke om dem, og lad så Business Central finde resten. Og får din kollega et andet resultat end dig, så tjek lige først, om I overhovedet søger med den samme søgning.




