• 30-10-2008, 17:37:21
    #1
    arkadaşlar tabloda yazi adında fulltext alanımız var ve bu tabloda arama yaptırıyorum şu şekilde;

    SELECT * FROM yazilar WHERE MATCH (yazi) AGAINST ('webmaster')
    bu şekilde aratınca içerisinde webmaster kelimesi geçen yazılar listeleniyor, buraya kadar sorun yok, fakat;
    SELECT * FROM yazilar WHERE MATCH (yazi) AGAINST ('master')
    diye aratınca içinde webmaster geçen yazılar çıkmıyor, *master* , %master% olarakta denedim, fakat netice aynı, ne yapmak lazım,??
  • 30-10-2008, 18:06:24
    #2
    select * from yazilar where yazi like '%master%'
    ya da
    select * from yazilar where yazi regexp '%master%' kullan
    genelde bunlar tercih ediliyor
  • 30-10-2008, 18:09:48
    #3
    alanlarınıza alter table ile fulltext özelliği eklediniz mi?

    MySQL :: MySQL 5.0 Reference Manual :: 11.8 Full-Text Search Functions

    -erkuterhan

    like ile fulltext farklı şeyler.
  • 30-10-2008, 19:25:04
    #4
    OnurSQL adlı üyeden alıntı: mesajı görüntüle
    alanlarınıza alter table ile fulltext özelliği eklediniz mi?
    MySQL :: MySQL 5.0 Reference Manual :: 11.8 Full-Text Search Functions
    -erkuterhan
    like ile fulltext farklı şeyler.
    evet, zaten eklememiş olsam bu sorgu hiç çalışmaz hata verir, çünkü fulltext eklemeden aynı sorguyu denemiştim hiç çalışmamıştı, ekleyince çalıştı ama şimdide bu belirttiğim sorun var.


    edit: acaba eklememiş olabilirmiyim,
    ALTER TABLE `yazilar` ADD FULLTEXT (
    `yazi`
    )
  • 30-10-2008, 20:25:08
    #5
    Üyeliği durduruldu
    fulltext maalesef bulamıyo... (varsa yöntemi bulursan pm veya yazarsan sevinirim..)

    select * from yazilar where yazi like '%master%'
    +aranan kelime 1 den fazla olabileceği(web master sad asdff gibi) için parçalayarak aratırsan daha net ve fazla sonuca ulaşırsın...
    select * from yazilar where yazi like '%web%' || yazi like '%master%' || yazi like '%sad%' || yazi like '%asdff%'

    kolay gelsin
  • 31-10-2008, 13:39:12
    #6
    sweatcell adlı üyeden alıntı: mesajı görüntüle
    fulltext maalesef bulamıyo... (varsa yöntemi bulursan pm veya yazarsan sevinirim..)
    select * from yazilar where yazi like '%master%'
    +aranan kelime 1 den fazla olabileceği(web master sad asdff gibi) için parçalayarak aratırsan daha net ve fazla sonuca ulaşırsın...
    select * from yazilar where yazi like '%web%' || yazi like '%master%' || yazi like '%sad%' || yazi like '%asdff%'
    kolay gelsin
    MySQL :: MySQL 5.0 Reference Manual :: 11.8.2 Boolean Full-Text Searches

    'apple*'

    Find rows that contain words such as “apple”, “apples”, “applesauce”, or “applet”.

    demiş, ama olmuyor,..
  • 02-11-2008, 00:42:24
    #7
    Üyeliği durduruldu
    huseyinkeles adlı üyeden alıntı: mesajı görüntüle
    MySQL :: MySQL 5.0 Reference Manual :: 11.8.2 Boolean Full-Text Searches

    'apple*'

    Find rows that contain words such as “apple”, “apples”, “applesauce”, or “applet”.

    demiş, ama olmuyor,..
    bulmuyodan kastım ara sözcükleri bulmaması

    webmaster => master ararsan fulltext bulmaz like bulur veya "ebmas" aratırsanda fulltext bulmaz like bulur
    fultext sadece kelimenin başlagıcından itibaren 4+ karakteri buluyor.
    "web" aratsan bulmaz "webma" aratsan bulur.

    bırak fulltext'i like kullan...
  • 02-11-2008, 01:42:20
    #8
    verdiğin mysql referans sayfasında istediğin gibi yapmanı detaylı olarak anlatmış.. boolean kullanırken türkçe karakter sorunun olursa like ile tamamlayabilirsin.