• 22-02-2009, 10:55:50
    #1
    Üyeliği durduruldu
    Merhaba arkadaşlar,

    Örneğin, www.xyz.com/index.asp?aranacak=kilic dediğimizde like '%" &trim(aranacak)&"%' şeklinde veri tabanında arama yaptırıyorum; fakat veri tabanında kilic değil de kılıç var ve bu yüzden aranan şey bulunamıyor. Ama mesela Google'da kılıç da yazsanız kilic da yazsanız yine o kılıç'ı aratmak istediğimizi anlıyor ve doğru sonuç gösteriyor.

    ASP'de bu şekilde bir arama yaptırabilmek mümkün mü? Umarım ne demek istediğimi anlatabilmişimdir. Şimdiden teşekkürler...
  • 22-02-2009, 13:15:46
    #2
    Eposta Aktivasyonu Gerekmekte
    Şu Mantığı Kullan
    Aranan Kelimeyi Saydır. bir Döngü Kur , 0 dan sayılan sayıya kadar. Tüm Karakterleri Kontrol Ettir eger karakter "c" ise "ç" olarak değiştirerek tekrar arama yaptırmalısın.
  • 22-02-2009, 14:07:16
    #3
    Üyeliği durduruldu
    Teşekkürler. Soruyu farklı bir açıdan sorayım bir de. Aslında benim yapmak istediğim şöyle bir şey:

    1. Veri tabanımda her yazı için etiketler tablosu var ve bu tabloda yazıyla ilgili etiketler virgülle ayrılmış şekilde bir arada duruyor. Örneğin; "Kılıç, Mılıç, Araba, Otobüs"

    2. Ben bunları sitemde ilgili yazının altında etiketler tablosunda virgüllerden ayırarak yansıtıyorum ve her ayrılan etikete örneğin "etiket.asp?aranacak=kilic" olarak bağlantı veriyorum.

    3. Birine tıklandığında, açılan sayfanın başlığı (title) request.querystring ile aranacak'ı alıyor ve yazıyor. Ayrıca, yine "aranacak" için LIKE kullanarak etiketler tablosunda arama yaptırıyorum.

    İşte, benim yapmak istediğim, title'da "kilic" değil de "Kılıç" yazılması ve arama sonucunun sağlıklı bir şekilde görüntülenebilmesi. Mesela WordPress'te sistem böyle. Bunun ASP'de yapılma imkânı var mı?
  • 22-02-2009, 14:08:01
    #4
    Üyeliği durduruldu
    Bir de soundex sistemi var, ama o da çok karışık ve hantal gibi geldi. http://tr.wikipedia.org/wiki/Soundex
  • 22-02-2009, 17:31:12
    #5
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Sanırım istediğin gibi birşey yaptım.
    test ettim çalıştı.


    <%

    Set Baglanti=Server.CreateObject("Adodb.Connection")
    Baglanti.Open "Provider=Microsoft.JET.OLEDB.4.0;Data Source=" & Server.MapPath("db/ara.mdb")

    ara = request("aranacak")
    ara = replace(ara,"i","%")
    ara = replace(ara,"c","%")
    ara = replace(ara,"g","%")
    ara = replace(ara,"s","%")
    ara = replace(ara,"o","%")
    ara = replace(ara,"u","%")


    Set rs=baglanti.Execute("Select * from ara where ara like '%"&ara&"%' ")

    response.write rs("ara")

    rs.close
    set rs = nothing

    %>

    kolay gelsin
  • 22-02-2009, 17:50:14
    #6
    Üyeliği durduruldu
    Teşekkür ederim denom, ama bu şekilde pek sağlıklı çalışmadı (ilk başta kodları karıştırmışım o yüzden olmadı demiştim). Şimdi birkaç deneme yaptım, bazı kelimelerde iyi çalışıyor, ama bazılarında hiç sonuç göstermiyor.
  • 22-02-2009, 18:07:24
    #7
    Üyeliği durduruldu
    Şu anda biraz kurcaladım ve yorgunluktan sorgu kısımlarını atlamışım. Evet, şimdi çalışıyor. Çok teşekkür ederim denom. Ufak hatalara sahip olsa, bazen ilgisiz şeyleri gösterse de sorun değil.

    Arama kısmı şu anda tamam, birinci aşamayı hallettik Peki bir de title kısmında nasıl yapabiliriz benim yapmak istediğimi?
  • 02-03-2009, 20:02:55
    #8
    Üyeliği durduruldu
    IsaSARI adlı üyeden alıntı: mesajı görüntüle
    Bir de soundex sistemi var, ama o da çok karışık ve hantal gibi geldi. Soundex - Vikipedi
    soundex sql de çalışır ve arama yoğunluğu için kullanılır. konuyla pek alakası yok..
    ama en mantıklı çözüm şimdilik replace ile karakter değişimi ile kontrol etmek gibi görünüyor.
  • 02-03-2009, 20:05:29
    #9
    Üyeliği durduruldu
    Sanırım en iyisi replace, ama o zaman da çok fazla ilgisiz sonuç çıkarıyor. Örnek: yalin unluler | İsa SARI - Kişisel Kimlik Sitesi

    Buna nasıl bir çözüm bulabiliriz?