Bulanık Arama Nedir?

Bulanık arama, arama sorgusu metinle tam olarak eşleşmediğinde bile eşleşmeler bulabilen bir arama tekniğidir. "apple" sadece "apple" ile eşleşen tam aramanın aksine, bulanık arama "aple" (yazım hatası), "Apple" (farklı büyük/küçük harf) veya hatta "apples" (çoğul) gibi sonuçları bulabilir. Bu, iki dize arasındaki benzerliği, yazım hatalarını, eksik harfleri, farklı karakter durumlarını ve küçük varyasyonları hesaba katarak hesaplayarak çalışır. Kullanıcıların mükemmel doğrulukta sorgu yazmalarına gerek kalmadan aradıklarını bulabilmelerini sağlayarak kullanıcı dostu arama deneyimleri oluşturmak için vazgeçilmezdir.

Fuse.js Nasıl Çalışır?

Fuse.js, yaklaşık dize eşleştirme algoritması kullanan bir JavaScript kütüphanesidir. Şu şekilde çalışır:

  1. İndeksleme: Aranabilir verinizden verimli bir veri yapısı oluşturur
  2. Puanlama: Arama sorgusu ile her öğe arasındaki benzerlik puanını hesaplar (0.0 = mükemmel eşleşme, 1.0 = eşleşme yok)
  3. Filtreleme: Eşik kriterlerini karşılayan sonuçları döndürür
  4. Sıralama: Sonuçları puanlarına göre alaka düzeyine göre sıralar

Kütüphane, eşik (arama ne kadar bulanık olmalı), konum (eşleşmelerin nerede beklenmesi gerektiği) ve mesafe (beklenen konumdan ne kadar uzağa aranacağı) gibi yapılandırılabilir seçenekler sunar; bu sayede geliştiriciler arama davranışı üzerinde ince ayar yapabilir.

Araç Açıklaması

Fuse.js Playground, Fuse.js bulanık arama kütüphanesi için etkileşimli bir test ortamıdır. Geliştiricilerin tüm mevcut arama yapılandırma seçeneklerini denemelerine ve özel ya da örnek veri üzerinde gerçek zamanlı sonuçları görmelerine olanak tanır. Arama anahtarlarını özel ağırlıklarla yapılandırabilir, büyük/küçük harf duyarlılığı ve puan dahil etme gibi temel seçenekleri ayarlayabilir ve eşik, konum ve mesafe gibi gelişmiş parametreleri ince ayar yapabilirsiniz. Araç, yapılandırma değişikliklerinin arama sonuçlarını nasıl etkilediğini anında görsel geri bildirimle gösterir; bu da uygulamaya geçmeden önce arama işlevselliğini prototiplemek için idealdir.

Özellikler

  • Özel Veri Girişi: Gerçek veri setlerinde arama davranışını test etmek için kendi JSON verinizi yükleyin
  • Yapılandırılabilir Arama Anahtarları: Özel ağırlık öncelikleriyle hangi alanların aranacağını tanımlayın
  • Gerçek Zamanlı Sonuçlar: Arama sorgularını veya seçenekleri değiştirdiğinizde anında geri bildirim alın
  • Temel Seçenekler: Büyük/küçük harf duyarlılığı, aksanları yoksayma, sıralama ve puan gösterimini kontrol edin
  • Gelişmiş İnce Ayar: Eşik, konum, mesafe, alan normlaştırması ve daha fazlasını ayarlayın
  • Genişletilmiş Arama Söz Dizimi: Önek arama (^), tam eşleşme (!) ve diğer gelişmiş sorgu kalıplarını test edin
  • Sonuç Görselleştirme: Eşleşme puanlarıyla birlikte sıralanabilir bir tabloda arama sonuçlarını görüntüleyin
  • Örnek Veri Seti: Hemen test ve deneme yapabilmeniz için önceden yüklenmiş kitap koleksiyonu

Örnekler

Temel Arama:

  • Sorgu: "fantasy" → Fantastik kategorisindeki tüm kitapları bulur
  • Sorgu: "tolkien" → Yazar J.R.R. Tolkien tarafından yazılmış kitapları bulur
  • Sorgu: "lord rings" → Eksik kelimeler olsa da "The Lord of the Rings"i bulur

Bulanık Eşleştirme:

  • Sorgu: "hary poter" (yazım hataları) → Hâlâ "Harry Potter"ı bulur
  • Sorgu: "1984" → George Orwell'in kitabını bulur
  • Sorgu: "scifi" → "Science Fiction" kategorisiyle eşleşir

Genişletilmiş Arama (etkinleştirildiğinde):

  • Sorgu: "^The" → "The" ile başlayan başlıkları bulur
  • Sorgu: "!Fantasy" → "Fantasy" kategorisi için tam eşleşme bulur
  • Sorgu: "'Dune" → "Dune" kelimesini içeren öğeleri bulur

Yapılandırma Seçenekleri

Arama Anahtarları:

  • Hangi alanların aranacağını tanımlayın (ör. title, author, category)
  • Belirli alanları önceliklendirmek için ağırlıklar atayın (daha yüksek ağırlık = daha önemli)

Temel Seçenekler:

  • Büyük/Küçük Harfe Duyarlı: Harf durumunu tam olarak eşleştir
  • Skoru Dahil Et: Alaka puanlarını göster (0.0 = mükemmel, 1.0 = zayıf)
  • Aksanları Yoksay: Aksanlı karakterleri temel şekline dönüştür (é = e)
  • Sonuçları Sırala: Sonuçları alaka puanına göre sırala
  • Tüm Eşleşmeleri Bul: İlk eşleşmeyi bulduktan sonra aramayı sürdür

Gelişmiş Seçenekler:

  • Minimum Eşleşme Karakter Uzunluğu: Bir eşleşme için gereken minimum karakter sayısı (varsayılan: 1)
  • Konum: Metindeki eşleşmelerin beklenen konumu (varsayılan: 0 = başlangıç)
  • Eşik: Aramanın ne kadar bulanık olması gerektiği, 0.0 (tam) ile 1.0 (çok bulanık) arasında
  • Mesafe: Beklenen konumdan aramanın ne kadar uzağa yapılabileceği
  • Genişletilmiş Aramayı Kullan: Gelişmiş sorgu sözdizimini (^, !, ', vb.) etkinleştir
  • Konumu Yoksay: Eşleşme sırasında konumu dikkate alma
  • Alan Normunu Yoksay: Puanlamada alan uzunluğunu hesaba katma
  • Alan Norm Ağırlığı: Alan uzunluğunun puanlamaya etkisi

Kullanım Senaryoları

  • Arama Uygulamasını Test Etme: Kodlamaya başlamadan önce arama işlevselliğini prototipleyin ve doğrulayın
  • API Yapılandırması: Uygulamanız için optimal Fuse.js ayarlarını belirleyin
  • Arama Davranışı Analizi: Farklı seçeneklerin sonuç kalitesini nasıl etkilediğini anlayın
  • Müşteri Sunumları: Paydaşlara gerçek veriyle aramanın nasıl çalıştığını gösterin
  • Fuse.js Öğrenme: Kütüphanenin yeteneklerini kavramak için uygulamalı deneyim
  • Veri Yapısı Testi: JSON veri yapınızın bulanık arama ile uyumlu olduğunu doğrulayın
  • Arama Kalitesi Ayarı: En iyi sonuçlar için eşik ve diğer parametreleri ince ayar yapın