Hocam açıkçası bu iş ilk bakışta basit görünüyor ama bence düşündükçe biraz karmaşıklaşıyor. Çünkü:
- Kullanıcı bir harfi eksik ya da yanlış girerse sistem direkt patlar. Bunun için benzerlik algoritmaları lazım ama onlar da ekstra yük getirir.
- Şarkı sözlerini nereden bulacaksın? Tümünü lokal tutmak pratik değil, telif var. API lazım (Musixmatch, Genius vs.) ama onların da ya limiti var ya da ücretli.
- Küçük bir listede sorun yok ama milyonlarca şarkı arasında arama yapacaksan işin performans boyutu devreye giriyor. Burada indexleme, arama motorları falan gerekebilir.
- Türkçe karakterler, büyük/küçük harf farkı, hatta kullanıcıların yanlış boşluk veya yazım yapması bile sistemi yanıltır.
- Bir de kullanıcı deneyimi tarafı var. Yani “bulunamadı” deyip bırakmak yerine “şuna benziyor olabilir mi?” diye öneri çıkması lazım.
Aslında bu sistem tek katmanlı verimli çalışmaz, bayağı cascade gibi işlemeli. Önce direk eşleşme aranır, bulamazsa fuzzy matching devreye girer. O da olmazsa öneriler çıkar.