Tüm Sayfalar / 44 - Arama Sistemi
Sayfa 44 / 161
Akıllı Arama

Arama Sistemi

Şarkı, sanatçı, albüm ve playlist arayın

Biz Ne Yaptık?

Kullanıcıların aradıklarını anında bulabilmesi için gelişmiş bir arama sistemi oluşturduk. Yazarken sonuçların canlı olarak gösterildiği, akıllı öneri sunan bir deneyim tasarladık.

Eski Yöntem

  • Tam kelime yazıp Enter'a basma
  • Sayfa yenilenmesi bekleme
  • Yazım hatası sonuç bulmama

Modern Mimari

  • Canlı arama: Yazarken anında sonuç
  • Akıllı öneri: "Tarkan" yazınca şarkıları da
  • Fuzzy matching: Yazım hatasını tolere eder

Kullanıcı Ne Yaşar?

1

Arama kutusuna tıklar ve yazmaya başlar

2

İlk 2-3 harften sonra sonuçlar anında belirir

3

Şarkılar, sanatçılar, albümler kategorilere ayrılmış şekilde listelenir

4

İstediği sonuca tıklayarak direkt gider

Arama Özellikleri

Anında Sonuç

Her tuş basımında sonuçlar güncellenir

Kategorili Sonuçlar

Şarkı, sanatçı, albüm, playlist ayrı gruplar

Arama Geçmişi

Son aramalar hatırlanır ve önerilir

Trend Aramalar

Popüler aramalar başlangıçta gösterilir

Arkaplanda Neler Çalışıyor?

Kullanıcı arama kutusuna yazmaya başladığında, sistem milisaniyeler içinde şu süreçleri işletir:

Debounce ile Bekleme

Her tuş basımında hemen sorgu göndermek yerine, debounce(300ms) fonksiyonu kullanılır. Kullanıcı yazmayı 300 milisaniye durdurunca sorgu tetiklenir. Bu, sunucu yükünü %80 azaltır.

AJAX İsteği Gönderimi

fetch('/api/search?q=' + query) ile arama terimi sunucuya gönderilir. SearchController bu isteği alır ve arama motorunu tetikler.

Çoklu Tablo Araması

Song::where('title', 'LIKE', "%{$q}%"), Artist::where('name', 'LIKE', ...) ve Album::where(...) sorguları paralel çalışır. Her tabloda ayrı arama yapılır.

Fuzzy Matching (Bulanık Eşleşme)

SOUNDEX() ve Levenshtein algoritmaları devreye girer. "Tarkn" yazdığınızda "Tarkan" bulunur çünkü ses benzerliği hesaplanır. Yazım hatası toleransı %85'e kadar çıkar.

Sonuçları Kategorileme

Gelen sonuçlar type alanına göre gruplandırılır: Şarkılar, Sanatçılar, Albümler, Playlistler. Her grup için ayrı bölüm oluşturulur ve relevance_score'a göre sıralanır.

Arama Geçmişi Kaydetme

Kullanıcı bir sonuca tıkladığında search_histories tablosuna kayıt yapılır. Aynı kullanıcı daha sonra aynı harfleri yazdığında, geçmiş aramalar öncelikli gösterilir.

Bu Sayfanın Anahtar Terimleri

Live Search (Canlı Arama)

Yazarken sonuçların anında gösterilmesi

Google'da yazdıkça önerilerin çıkması gibi

Fuzzy Matching

Yaklaşık eşleştirme, yazım hatası toleransı

"Tarkn" yazsan bile "Tarkan" bulur

Debounce

Yazım bitene kadar aramayı bekletme

Her harfte değil, duraksadığında arar

Autocomplete (Otomatik Tamamlama)

Yazdığınız kelimeyi tahmin edip tamamlama

"Tar" yazınca "Tarkan" önerir

Kuzu Kuzu
Tarkan • Şarkı
Tarkan
Sanatçı
Karma
Tarkan • Albüm
Akıllı Arama

Yazarken anında sonuç