MySQL .. arama FULLTEXT kullanarak veya benzerlerini kullanarak?

1 Cevap php

Benim uygulama için bir arama özelliği üzerinde çalışıyorum, ben veritabanındaki tüm makaleleri aramak istiyorum. Şimdi olduğu gibi, benim sorguları bir LIKE kullanıyorum, ama ben bir sorun olarak görmek çeşit SO kenar çubuğunda ne gibi bir "İlgili Makaleler" özelliği, (eklemek istiyorsanız Beğen) kullanın.

Ne MySQL arama, Text ya da ... ya da ben bilmem belki başka bir şey için kullanmak daha iyi değil mi?

Ayrıca, ben Kohana Framework kullanıyorum, bu yüzden herkes sorgu oluşturucu kullanmak tam metin eşleştirme yapmak için kolay bir yol bilen varsa, ben takdir ediyorum.

Teşekkürler.

1 Cevap

Her şeyden önce, bu göz önünde bulundurmanız gerekir:

  • MySQL FULLTEXT indexes are only possibles for tables in MyISAM -- not for tables in InnoDB
    • Ve sadece InnoDB yabancı tuşları, işlemleri destekler ...
  • Kullanımı LIKE genellikle her arama için tablonun tam tarama yapıyor anlamına gelir, genellikle oldukça yavaş ve performansları için kötü.

Ben gerçekten büyük gerçek / / önemli her türlü uygulama için bu iki çözümlerin herhangi kullanmak olmaz ...


Instead of those two possibilities, have you considered using a real fulltext indexing/search engine ?

Örneğin, bakmak isteyebilirsiniz:

Sadece Zend Framework PHP gerektirir Lucene bir uygulama var Not: Zend_Search_Lucene - Eğer sunucu üzerinde herhangi additionnal yazılımı yüklemek değil eğer yararlı olabilir.