İçeriğe geç

Yazılımda Arama Neden Kayıt Bulamıyor? Çözüm Yolları

Web Teknolojileri
Yazılımda Arama Neden Kayıt Bulamıyor? Çözüm Yolları

Yazılımda arama kutusuna doğru kelimeyi yazdığınız hâlde kayıt gelmiyorsa sebep neredeyse her zaman üç başlıktan biridir: harflerin karşılaştırılma biçimi, aramanın kelimenin neresinden eşleştiği ve aramanın hangi alanlarda yapıldığı. Kayıt veritabanında durmaktadır; arama onu göremiyordur.

Aşağıdaki başlıklar bu üç sebebi ve sık karşılaşılan ürün kodu sorununu sırayla açıyor, sonunda da sorunu adım adım daraltmak için bir kontrol listesi veriyor.

Türkçe karakter ve büyük-küçük harf

En sık görülen sebep budur. Kullanıcı sahin yazar, kayıt Şahin olarak girilmiştir ve arama hiçbir şey bulmaz. Aynı sorun ı ile i, o ile ö, u ile ü, c ile ç arasında da yaşanır.

Üstelik Türkçe, büyük harfe çevirmede diğer dillerden ayrılır: küçük i harfinin büyüğü İ, küçük ı harfinin büyüğü I olmalıdır. Veritabanı ya da uygulama bu kuralı bilmeyen bir dil ayarıyla çalışıyorsa, aynı kelime iki yerde farklı biçimde büyütülür ve karşılaştırma tutmaz.

Çözüm iki adımdır. Önce veritabanı ve sütun düzeyindeki karşılaştırma ayarının Türkçe metin için uygun ve projenin tamamında aynı olduğundan emin olun. Sonra aramaya girilen metni ve aranan alanı aynı kurala göre sadeleştirin: harfleri küçültün, aksanları kaldırın, baştaki ve sondaki boşlukları atın. Bu sadeleştirilmiş hâli ayrı bir arama sütununda saklamak, hem sonucu tutarlı yapar hem de aramayı hızlandırır.

Kısmi eşleşme: kelimenin ortasından arama

İkinci sebep, aramanın yalnızca baştan eşleşmesidir. Yılmaz Otomotiv kaydı, kullanıcı otomotiv yazdığında gelmez; çünkü arama ifadesi kelimenin başına sabitlenmiştir.

Kullanıcılar firma adlarını nadiren baştan yazar. Çoğu zaman akılda kalan ortadaki kelimedir. Bu yüzden kurumsal panellerde arama, metnin herhangi bir yerinde eşleşecek biçimde kurulmalıdır. Bunun bedeli performanstır: kelimenin ortasından arama, klasik dizinleri kullanamaz ve tablo büyüdükçe yavaşlar. Çözüm, tam metin araması ya da bu tür sorguları destekleyen bir dizin kullanmaktır.

Araya giren bir ayrıntı daha var: birden fazla kelime yazıldığında ne olacağı. yilmaz otomotiv sorgusunun iki kelimeyi de içeren kayıtları mı yoksa herhangi birini içerenleri mi getireceği karara bağlanmalıdır. Kurumsal panellerde genellikle hepsini içerenler doğru davranıştır; sonuç boş gelirse arama herhangi birine genişletilebilir.

Ürün kodları: tire, boşluk ve nokta

Ürün kodu araması kendi başına bir konudur, çünkü kodlar insan tarafından farklı biçimlerde yazılır. Katalogda ABC-120/4 olan kod, kullanıcı tarafından abc 120 4 ya da abc1204 diye aranır.

Kullanıcı ne yazarKayıtta ne varNe yapılmalı
abc1204ABC-120/4Noktalama ve boşluk atılmış bir karşılaştırma sütunu tutulmalı
ABC 120ABC-120/4Kısmi eşleşme açık olmalı
8690000000000Barkod alanıYalnızca rakamsa barkod alanında tam eşleşme denenmeli
sarı kablo 2mÜrün adı ve açıklamaKelime kelime, birden çok alanda aranmalı

Pratik yöntem, her ürün için noktalamasız ve boşluksuz bir arama anahtarı üretip saklamaktır. Kullanıcının yazdığı metni de aynı kuraldan geçirirsiniz; böylece yazım farkları ortadan kalkar.

Arama hangi alanlarda yapılıyor?

Üçüncü sebep çoğu zaman gözden kaçar: arama yalnızca bir alana bakıyordur. Müşteri aramasının yalnızca unvana bakması, kullanıcının vergi numarası ya da telefon son dört hanesiyle aradığında sonuç alamaması demektir.

Her liste ekranı için hangi alanların aranacağını yazılı olarak belirleyin. Müşteri listesinde unvan, kısa ad, vergi numarası ve e-posta; sipariş listesinde sipariş numarası, müşteri adı ve kargo takip numarası tipik bir seçimdir. Alan sayısını genişletmek sonucu iyileştirir ama sorguyu ağırlaştırır; bu yüzden listeyi sınırlı ve bilinçli tutun.

Sonuçların sırası da önemlidir. Tam eşleşen kayıt, içinde geçen kayıttan önce gelmelidir; aksi hâlde kullanıcı aradığı kaydı ikinci sayfada bulur ve aramanın çalışmadığını düşünür.

Silinmiş ya da pasife alınmış kayıtların arama sonucuna girip girmeyeceği de ayrıca kararlaştırılmalıdır. Varsayılan davranış genellikle onları gizlemektir; ancak kullanıcı eski bir müşteriyi arayıp bulamadığında kaydı yeniden açar ve aynı firma sistemde iki kez oluşur. Pratik çözüm, pasif kayıtları sonuç listesinin altında ve pasif olduğu belirtilerek göstermektir.

Arama yavaşsa ne yapılır?

Doğru sonucu getiren ama üç saniye süren arama da bozuktur. Yavaşlığın ilk sebebi genellikle dizin eksikliğidir; ikinci sebep, kelimenin ortasından yapılan aramanın dizini kullanamamasıdır.

Sırasıyla şunlara bakılır: aranan alanlarda dizin var mı, sorgu her seferinde tüm tabloyu mu tarıyor, sonuç sayfalanıyor mu, kullanıcı yazarken her harfte sorgu atılıyor mu. Son madde tek başına sunucu yükünü birkaç katına çıkarabilir; kullanıcı yazmayı bıraktıktan kısa bir süre sonra sorgu atmak çoğu zaman yeterlidir. Genel teşhis sırası için yazılım yavaşladığında nereye bakılır yazısı yol gösterir.

Kısa kontrol listesi

  • Aynı kaydı büyük harfle ve küçük harfle aradığınızda sonuç değişiyor mu?
  • Türkçe karakter yerine yakın Latin harfi yazıldığında kayıt geliyor mu?
  • Kelimenin ortasından arandığında sonuç çıkıyor mu?
  • Ürün kodu tiresiz ve boşluksuz yazıldığında bulunuyor mu?
  • Hangi alanlarda arandığı yazılı mı, vergi numarası ve telefon dâhil mi?
  • Tam eşleşen kayıt listenin başında mı geliyor?
  • Sonuç kaç saniyede geliyor ve aranan alanlarda dizin var mı?

KAV Yazılım, geliştirdiği panellerde arama davranışını bu başlıklar üzerinden tanımlar; hangi alanda, hangi eşleşme kuralıyla ve hangi sırayla arandığı teslim belgesinde yazılı olur.

Sık sorulan sorular

Arama kutusuna yazılan Türkçe karakterler neden sonuç değiştiriyor?

Veritabanının karşılaştırma ayarı Türkçe harfleri ayrı karakter saydığında sahin ile Şahin eşleşmez. Ayrıca büyük harfe çevirme kuralı Türkçede farklıdır; i harfinin büyüğü İ olmalıdır. Hem ayarın tutarlı olması hem de aranan metnin sadeleştirilmiş bir kopyasının saklanması bu sorunu bitirir.

Kelimenin ortasından arama yapmak sistemi yavaşlatır mı?

Klasik dizinler bu tür aramaları kullanamadığı için tablo büyüdükçe yavaşlar. Küçük tablolarda fark edilmez, yüz binlerce satırda belirgin hâle gelir. Çözüm tam metin araması ya da bu sorgu türünü destekleyen özel bir dizin kullanmaktır.

Ürün kodu araması neden ayrı ele alınmalı?

Kodlar tire, bölü ve boşluk içerir ama kullanıcı bunları çoğu zaman yazmaz. Her ürün için noktalaması ve boşluğu atılmış bir arama anahtarı saklamak, kullanıcının yazım biçiminden bağımsız sonuç verir. Yalnızca rakam girildiğinde barkod alanında tam eşleşme denemek de sonucu belirgin biçimde iyileştirir.

Aramada hangi alanlar taranmalı?

Ekranın işine göre değişir ama liste yazılı olarak belirlenmelidir. Müşteri ekranında unvan, kısa ad, vergi numarası ve e-posta; sipariş ekranında sipariş numarası, müşteri adı ve takip numarası yaygın seçimdir. Alan sayısını gereksiz büyütmek sorguyu ağırlaştırır.

Kullanıcı yazarken her harfte arama yapmak doğru mu?

Her tuş vuruşunda sorgu atmak sunucu yükünü birkaç katına çıkarır ve yarım yazılmış kelimeler için gereksiz sonuç üretir. Kullanıcı yazmayı kısa bir süre bıraktığında sorgu atmak hem yükü düşürür hem de sonucu anlamlı kılar. Çok kısa metinlerde aramayı hiç başlatmamak da yaygın bir tercihtir.
  • arama
  • performans
  • veri kalitesi
  • veritabani