Nå kan du endelig prøve det nye kodesøket til Github

Lover at du skal kunne søke og navigere i kode mye raskere enn før.

GitHub Code Search skal gi raskere og mer relevante søk. 📸: GitHub
GitHub Code Search skal gi raskere og mer relevante søk. 📸: GitHub Vis mer

GitHub har lenge jobbet med en ny løsning som skal gjøre det enklere og raskere å gjøre enkle eller avanserte søk på tvers av kodebaser (repoer).

Nå er den nye søkeløsningen endelig tilgjengelig for alle GitHub-brukere, skriver GitHub i en bloggpost.

– Målet med det nye kodesøket og kodevisningen er å gjøre utviklere i stand til å raskt søke, navigere i og forstå koden sin, sette kritisk informasjon i kontekst, og til syvende og sist gjøre utviklerne mer produktive, skriver GitHubs Colin Merkel i bloggposten.

Ny måte å vise kode på

Det er ikke bare selve søket som har blitt nytt, GitHub har også redesignet brukergrensesnittet for søk, og du har fått blant annet autofullføring og forslag i søkefeltet.

I tillegg har måten kode vises på blitt redesignet, slik at søk og navigering i kode har blitt integrert på en bedre måte i ett skjermbilde.

Du har ellers fått en Google-lignende søkestartskjerm på github.com/search.

Startskjermen for GitHub-søket. I tillegg har du alltid et søkefelt tilgjengelig øverst til venstre uansett hvor du er på GitHub.
Startskjermen for GitHub-søket. I tillegg har du alltid et søkefelt tilgjengelig øverst til venstre uansett hvor du er på GitHub. Vis mer

Det nye kodesøket gir deg mulighet til å søke globalt på tvers av alt som ligger på GitHub, eller snevre inn søket til å gjelde for eksempel et bestemt repo, organisasjon eller bruker.

Du kan begrense søket til et bestemt repo, bruker eller organisasjon.
Du kan begrense søket til et bestemt repo, bruker eller organisasjon. Vis mer

Du kan også søke etter for eksempel repoer som har mer enn et bestemt antall stjerner, filtrere og sortere resultatene etter for eksempel programmeringsspråk, antall interaksjoner eller kommentarer, og mye annet.

I skjermbildet for søkeresultater kan klikke på kodesnuttene søket har funnet for deg for å gå direkte til den aktuelle filen, der du igjen har nye filtrerings- og søkemuligheter.

Indekserer all GitHub-kode

The Register skriver at GitHub i starten brukte Apache Solr til å håndtere kodesøk, men at de i 2013 bygde en ny søketjeneste basert på Elasticsearch. Den var imidlertid ikke bra nok.

To år etter at Microsoft overtok GitHub, i 2020, begynte arbeidet med det som skulle bli en enda bedre og raskere søkemotor – kodenavn "Blackbird".

«Søkemotoren er spesiallaget for å håndtere kode, i motsetning til mer generelle søkemotorer for tekst.»

Oppgaven har vært formidabel, ifølge GitHub. Da Elasticsearch-søkemotoren ble rullet ut tok det flere måneder å indeksere all kildekoden. Den gangen hadde GitHub rundt 8 millioner repoer, i dag er det mer enn 200 millioner. De måtte derfor finne en mer effektiv måte å indeksere og holde indeksene oppdatert på.

Til slutt klarte GitHub faktisk å indeksere 45 millioner repoer som var i den første betaen av søketjenesten på bare 18 timer.

Skrevet i Rust

Hele søkemotoren er skrevet fra bunnen av i Rust, og er spesiallaget for å håndtere kode, i motsetning til mer generelle søkemotorer for tekst.

Resultatet er en søkemotor som er rundt dobbelt så rask som den gamle, i tillegg til at den har mange flere muligheter.

GitHub har laget en detaljert gjennomgang av teknologien bak den nye søkemotoren her.