• 29-05-2017, 02:17:33
    #1
    Üyeliği durduruldu
    Merhaba;

    Öncelikle tablo alanlarım utf8_general_ci.

    Örneğin; "aşk" diye LIKE komutu ile arama yaptıgımızda, "ask" geçenleride listeliyor.

    Birebir eşleşenleri nasıl listeliyebilirim?
  • 29-05-2017, 03:09:26
    #2
    Tablo karşılaştırmasını utf8_general_ci yerine utf8_turkish_ci olarak değiştirmeyi deneyin.

    Yada sorguyu şu şekilde düzenleyin;

    SELECT alan FROM tablo WHERE alan LIKE '%aşk%' COLLATE utf8_turkish_ci
    
    //yada
    
    SELECT alan FROM tablo WHERE alan LIKE '%aşk%' COLLATE utf8mb4_turkish_ci
  • 29-05-2017, 03:19:00
    #3
    Üyeliği durduruldu
    sercey adlı üyeden alıntı: mesajı görüntüle
    Tablo karşılaştırmasını utf8_general_ci yerine utf8_turkish_ci olarak değiştirmeyi deneyin.

    Yada sorguyu şu şekilde düzenleyin;

    SELECT alan FROM tablo WHERE alan LIKE '%aşk%' COLLATE utf8_turkish_ci
    
    //yada
    
    SELECT alan FROM tablo WHERE alan LIKE '%aşk%' COLLATE utf8mb4_turkish_ci
    Onunla alakalı oldugunu düşünmüyorum; Ayrıca fulltext arama neden çalışmıyor olabilir?

    Fulltext indexini tanımladım alanlara fakat.

    Halen

    Can't find FULLTEXT index matching the column list

    Hatası vermekte?
  • 29-05-2017, 03:40:20
    #4
    Pricona adlı üyeden alıntı: mesajı görüntüle
    Onunla alakalı oldugunu düşünmüyorum; Ayrıca fulltext arama neden çalışmıyor olabilir?

    Fulltext indexini tanımladım alanlara fakat.

    Halen

    Can't find FULLTEXT index matching the column list

    Hatası vermekte?
    Düşünmüyor olabilirsiniz, ancak tam olarak onunla alakalı. Deneyin isterseniz

    FullText için MYISAM motoru kullanmanız gerekli. InnoDb kullanıyorsanız ve MySQL sürümünüz 5.6'dan küçükse çalışmaz.
  • 29-05-2017, 03:44:36
    #5
    Üyeliği durduruldu
    sercey adlı üyeden alıntı: mesajı görüntüle
    Düşünmüyor olabilirsiniz, ancak tam olarak onunla alakalı. Deneyin isterseniz

    FullText için MYISAM motoru kullanmanız gerekli. InnoDb kullanıyorsanız ve MySQL sürümünüz 5.6'dan küçükse çalışmaz.
    Herşeyi çözdüm fakat;

    FULLTEXT aramada türkçe karakter aramada problem oluyor?

    SELECT * FROM `yazilar` WHERE MATCH(baslik,yazi) AGAINST ('aşk' IN BOOLEAN MODE);
    Sonuç 0 dönüyor. Ancak araba diye aradıgımda sonuç geliyor?
  • 29-05-2017, 03:50:53
    #6
    Pricona adlı üyeden alıntı: mesajı görüntüle
    Herşeyi çözdüm fakat;

    FULLTEXT aramada türkçe karakter aramada problem oluyor?

    SELECT * FROM `yazilar` WHERE MATCH(baslik,yazi) AGAINST ('aşk' IN BOOLEAN MODE);
    Sonuç 0 dönüyor. Ancak araba diye aradıgımda sonuç geliyor?
    Default olarak minimum 4 karakter ile arama yapabilirsiniz. Ya MySQL'den ft_min_word_len değerini düşürün yada sorguyu değiştirin.
  • 29-05-2017, 03:49:54
    #7
    Üyeliği durduruldu
    sercey adlı üyeden alıntı: mesajı görüntüle
    Default olarak minimum 4 karakter ile arama yapabilirsiniz. Ya MySQL'den ft_min_word_len değerini düşürün yada sorguyu değiştirin.
    İzin yok diyor ? Bunu sunucu sahibimi değiştirmesi gerekiyor ?

    Ayrıca fulltext aramada yine bu "aşk","ask" sorunuyla karşılaşırmıyım?
  • 29-05-2017, 04:00:00
    #8
    Pricona adlı üyeden alıntı: mesajı görüntüle
    İzin yok diyor ? Bunu sunucu sahibimi değiştirmesi gerekiyor ?

    Ayrıca fulltext aramada yine bu "aşk","ask" sorunuyla karşılaşırmıyım?
    Evet root izniniz olması gerekli. Karakter sorunu konusunda tam birşey söyleyemiyorum, test etmek gerekli öncelikle.