Google Arama Motoru Mimarisi

Google’ı basit fikirlerle inşa ettiler.

İşte nasıl:

  1. Tarama ?️
    İnternette trilyonlarca URL var – bu da her sayfayı taramayı zorlaştırıyor.

Yine de, arama sonuçlarına tüm ilgili web sayfalarını dahil etmek önemli. Bu yüzden dağıtılmış bir web tarayıcı kullanıyorlar. Bu, performans ve ölçeklenebilirlik sağlıyor.

Web tarayıcısını, bir web sitesinden otomatik olarak metin + medya indiren bir yazılım olarak hayal edin.

Web tarayıcılarını dünyanın dört bir yanındaki veri merkezlerinde çalıştırıyorlar. Bu, tarayıcıyı web sitesine daha yakın tutarak bant genişliği kullanımını azaltmalarını sağlıyor.

İnternetteki tüm web sayfalarını içeren merkezi bir veritabanı yoktur.

Ayrıca, yeni ve güncellenmiş web sayfalarını bulmak zordur. Bu nedenle: (1) bilinen sayfalardaki bağlantıları takip ederler. (2) bağlantı vermeyen sayfaları bulmak için site haritasını kullanırlar.

Site haritasını, belirli bir web sitesinin sayfaları hakkında bilgi içeren bir XML dosyası olarak düşünebilirsiniz.

Google tarayıcısının nasıl çalıştığına dair açıklama:

Tarayacağı URL’leri “URLserver” adlı bir kuyruğa kaydeder.

Belirli bir URL’de taramaya izin verilip verilmediğini anlamak için robots.txt dosyasını kontrol eder.

URL’yi kuyruktan alır ve bir HTTP isteği yapar (eğer izin verilmişse).

Performans için yerel bir DNS önbelleği tutar.

Sayfadaki yeni URL’leri bulmak için sayfayı render eder. (Bu, bir web tarayıcısına benzer.)

Taradığı sayfaları sıkıştırılmış biçimde dağıtık bir depolama sunucusunda kaydeder.

Giriş gerektiren sayfaları taramaz. (Basitçe ifade etmek gerekirse, yalnızca herkese açık URL’ler taranır.)

Bir web sitesinin aşırı yüklenmediğinden emin olmak için HTTP yanıt kodunu kontrol eder. (Örneğin, HTTP yanıt kodu 500, yavaşlaması gerektiği anlamına gelir.)

Bir web sitesini ne zaman ve ne sıklıkta tarayacağını dahili bir algoritma kullanarak belirler.


Web sayfalarını render ederler çünkü çoğu web sitesi tüm içeriği göstermek için JavaScript kullanır.

Render edilen sayfa yeni URL’ler için ayrıştırılır ve bu URL’ler tarama kuyruğuna eklenir.

Bir sonraki tekniğe hazır mısınız?

  1. Dizinleme ?

Arama sonuçlarının alakalı olması gerekir.

Ancak, bir web sayfasının içeriği anlaşılmadan doğru sayfayı döndürmek zordur.

Bu yüzden, taranan sayfaları işlerler ve bulunan bilgileri “dizin” adı verilen bir veritabanında saklarlar.

Ayrıca, iki tür dizin tutarlar: (1) İleri dizin – belirli bir sayfadaki kelimeleri ve konumlarını listeler. (2) Ters dizin – bir kelimeyi, o kelimeyi içeren belgelerin listesiyle eşleştirir.

İleri dizini sıralayarak ters dizini oluştururlar.

Ancak, birçok tek kelimelik arama sorgusu alırlar. (Örneğin, “YouTube”.)

Aynı ters dizin, tek kelimelik ve çok kelimeli sorguları yönetmek için yeterli değildir. (Belge listesini birleştirmek zordur.)

Bu nedenle performans için iki tür ters dizin tutarlar. Belgelerin sıralama şekline göre kategorize edilmiştir.

Kelime sırasına göre sıralanan ters dizin önce sorgulanır – çoğu sorguyu yanıtlar.

Belge kimliğine göre sıralanan ters dizin ise çok kelimeli sorgular için sorgulanır.

İşte madde madde Google dizininin nasıl çalıştığı:

  1. Benzersiz Belge Kimliği:
    Her web sayfasına (belge) benzersiz bir belge kimliği atanır.
  2. Lexicon (Sözlük):
    Belgelerde bulunan kelimeler, “Lexicon” adlı bellek içi bir depoda saklanır. Bu depolama, arama sorgularındaki yazım hatalarını düzeltmek için kullanılır.
  3. Belge Sunucusu:
    Her belgenin depolama konumu, belge sunucusunda kaydedilir. Bu bilgi, arama sonuçlarında gösterilen sayfa başlıkları ve özetler (snippets) oluşturulurken kullanılır.
  4. Bağlantılar:
    Ayrıştırılan belgelerde bulunan bağlantılar (links) ayrı bir veritabanında saklanır ve bu bağlantılar, belgeleri sıralamak için kullanılır.
  5. Bölümlendirme:
    Belge sunucusu ve dizin sunucusu, belge kimliğine göre bölümlenmiştir ve kapasite için çoğaltılır (replicated).
  1. Arama ?
    Günde 100 milyondan fazla yazım hatası içeren arama sorgusu alıyorlar.

Ancak, alakalı sonuçları gösterebilmek için sorguyu doğru tahmin etmek çok önemli.

Bu nedenle, sorguyu metin dönüşümü yoluyla temizliyorlar.

Ayrıca, kelime eş anlamlılarını bulmak ve yazım hatalarını düzeltmek için dil modelleri kullanıyorlar.

İşte Google arama iş akışı:

  1. Lexicon:
    Lexicon, arama sorgusundaki kelimeler için kelime kimliklerini bulur.
  2. Temizlenmiş Sorgu:
    Temizlenen sorgu dizine iletilir.
  3. Ters Dizin:
    Ters dizin, sorguya uyan belgelerin sıralı bir listesini döndürür.
  4. En Üst K Sonuç:
    Yanıt süresini azaltmak için en üstteki k sonuç gösterilir.
  5. Önbellekleme:
    Performans için dizin sonuçları ve belge özetleri önbelleğe alınır.
  6. Veri Merkezleri:
    Dizinlerin bir kopyası her veri merkezinde tutulur ve arama sorguları düşük gecikme için en yakın veri merkezine yönlendirilir.
  7. Tekrar Eden İçerik:
    Tekrar eden içeriği bulmak ve arama sonuçlarında yalnızca kanonik sayfaları göstermek önemlidir.
  • (1) Benzer sayfaları gruplar ve sayfaları kullanıcının dili, konumu vb. gibi faktörlere göre gösterir.
  • (2) Kanonik sayfayı bulmak için HTML anotasyonları kullanır.

TL;DR ?

  • Tarama: İnternetteki URL’leri bulmak.
  • Dizinleme: Sayfa içeriğini anlamak ve aranabilir hale getirmek.
  • Arama: Sonuçları sıralamak ve göstermek.

Google’ı reddeden aynı Yahoo, pazar payında yaklaşık %1’e düştü.

Oysa Google, dünyadaki en değerli şirketlerden biri haline geldi ve yaklaşık 2 trilyon USD değer kazandı.

Ayrıca, modern internetin temelini attı.

Neo Kim (Yazar)

Kaynak

Hasan Aslan (Senior .NET Developer | Full Stack Developer | Database Manager)

You may also like...