Geleneksel arama motorları, "King" gibi bir terim arandığında herkes için aynı sonuçları sunarak kişisel tercihleri göz ardı eder ve kullanıcı deneyimini kısıtlar. Instacart gibi şirketlerde arama altyapısı mühendisi olarak çalışan yazar, bu soruna geleneksel çözümlerin (Elasticsearch, ayrı ML servisleri, veri senkronizasyonu) getirdiği mimari karmaşıklık, ağ gecikmesi ve veri senkronizasyon zorluklarına dikkat çekiyor. Bu karmaşık ve maliyetli yapıların aksine, makale, tüm kişiselleştirilmiş arama motorunu doğrudan PostgreSQL içinde, ek bir altyapıya ihtiyaç duymadan, sadece SQL kullanarak inşa etme potansiyelini araştırıyor.
ParadeDB entegrasyonu ile PostgreSQL içinde "Retrieve and Rerank" (Getir ve Yeniden Sırala) adı verilen bir mimari kullanılarak kişiselleştirilmiş film arama motoru oluşturuluyor. Bu yaklaşım, BM25 tam metin aramasının hızını, vektör tabanlı kişiselleştirmenin zekasıyla birleştiriyor. İlk aşama olan "Retrieve" (Getir) adımında, BM25 kullanılarak kullanıcının sorgusuna en uygun ilk N (örneğin 100) aday hızlı ve düşük maliyetli bir şekilde bulunur. Bu, milyonlarca satırı ilgili bir alt kümeye indirger. İkinci aşama olan "Rerank" (Yeniden Sırala) adımında ise, bu 100 aday, kullanıcının kişisel profiline göre (örneğin izleme geçmişi veya beğenileri) Kozinüs Benzerliği ve anlamsal/vektör araması kullanılarak yeniden sıralanır. Bu iki aşamalı süreç, tüm veri kümesi üzerinde vektör benzerliği araması yapmanın getireceği aşırı yükten kaçınarak hem verimli hem de kişiselleştirilmiş sonuçlar sunar.
Bu yaklaşım, karmaşık dış sistemlere bağımlılığı ortadan kaldırarak kişiselleştirilmiş arama motorlarını doğrudan veritabanı içinde, daha basit ve maliyet etkin bir şekilde oluşturmayı mümkün kılıyor.