GitHub Code Search: Rust’ta kendi arama motoru

Adanali

Member
GitHub, geliştiricilerin platformlarında kod bulmasını kolaylaştırmakla kalmayıp aynı zamanda önemli ölçüde daha hızlı hale getirmek istiyor. Bu amaçla geliştirme ekibi, Rust’ta yazılan ve artık genel kullanıma sunulan kendi arama yazılımları üzerinde üç yıl çalıştı.


2021’in sonlarında GitHub geliştirme ekibi, GitHub’da kod aramaya yönelik iyileştirmeleri duyuran bir “Teknoloji Önizlemesi”ni duyurdu. GitHub geliştiricisi Colin Merkel, son blog gönderisinde, yeni kod arama ve kod görselleştirmenin amacını, geliştiricilerin kod tabanlarına dağılmış önemli bilgileri hızlı bir şekilde bulmalarını ve bu bilgileri bağlama oturtmalarını sağlamak olarak açıklıyor.




Yeni kod arama iş başında: sorgunuz için arama sonuçları



Yeni kod arama iş başında: “kaydedilmiş:kara kuş dili:yaml belleği” sorgusu için arama sonuçları.


(Resim: GitHub)



Genel olarak, projenin hedefleri oldukça iddialıydı: tüm kaynak kodunu GitHub’da indekslemeye ek olarak, artımlı indeksleme ve belge silmenin yanı sıra hızlı tam eşleştirme ve normal ifade sorguları için desteğe ihtiyacı vardı. Ayrıca, tüm bu işlemler için GitHub’ın mevcut Elasticsearch kümesindeki kaynak taleplerini artırmadan GitHub koduna bilgisiz entegrasyon gerektiriyordu.

GitHub ekibi, öneriler, tamamlamalar ve sonuçları bölme yeteneği ile yeniden tasarlanmış bir arama arayüzü tasarladı. Ayrıca, geliştiricilerin sıfırdan oluşturdukları bir kod arama motoru tasarladı. Eski kod aramaya göre yaklaşık iki kat daha hızlı ve daha güçlü olduğu söyleniyor.

Arama motoru artık alt dize sorgularını, normal ifadeleri ve sembol aramalarını destekliyor ve ekip, en alakalı sonuçların önce gelmesi için kodu anladıklarını söylüyor. GitHub’ın kod görünümü de yeniden tasarlandı; arama, gezinme ve kod gezinme artık sıkı bir şekilde entegre edildi.


Arama kodu için optimize edilmiş Rust’taki arama motoru


GitHub.com için yeni arama motoru tamamen Rust’ta geliştirildi ve dahili olarak “Blackbird” olarak adlandırıldı. GitHub’a göre bu yeni teknik, toplam 115 TB kod ve 15,5 milyar belge içeren 200 milyondan fazla GitHub deposuna erişim sağlıyor. Geliştirme ekibi, Şubat 2023 tarihli çok ayrıntılı bir blog gönderisinde, GitHub’ın başlangıcından bu yana kod bulma sorunlarını çözmek için mevcut yazılımı kullanmaya çalıştıklarını açıkladı.

GitHub başlangıçta kod araması için Apache Solr’u kullandı. 2013 yılında Solr, Lucene ile birleştikten sonra ekip, Elasticsearch’ü kullanarak yeni bir arama hizmeti oluşturdu. Bunu bazı başarısızlıklar izledi, bu nedenle Blackbird üzerinde çalışmalar 2020’de başladı.

GitHub ekibinin bu yeni aramayı nasıl geliştirdiği, ayrıntılı olarak nasıl çalıştığı ve depoları aramak için grep kullanmanın neden pek mantıklı olmadığı hakkında daha fazla bilgi edinmek isteyen geliştiriciler, ayrıntılı bir blog gönderisini ve GitHub’ın Esso hakkında bilgi bul arama belgelerini okuyabilir.


(FM)



Haberin Sonu
 
Üst