Büyük bir forumda bir hızlı arama işlevselliği geliştirmek?

4 Cevap php

PHP sıfırdan bir forum inşa ediyorum. S veritabanı yapısı: Ben phpBB en kullandık.

Ama şimdi arama işlevselliği hakkında düşünme?, Bütün mesajların gerçekten hızlı arama yapabilmek için iyi bir tasarım nedir. Ben biraz daha iyi bir yolu sadece% sorgu_dizgesi% mysql :) orada daha olmalı sanırım

Belki, kelimelerle tüm cümleleri patlayabilir sözler bir karma tablo tuşları olsun, ve değer kelimesi tüm yazı bir virgülle ayrılmış listesi nedir? Sonra orada bir yazıyı silmek eğer biraz daha sorun olduğunu ama bu yaklaşım daha iyi olduğunu düşünüyorum.

Baştan Ben basit bir çözüm kullanabilirsiniz sanırım, ama ben forum büyüdükçe zaman kodunu değiştirmek istemiyorum.

Herhangi bir fikir için teşekkürler ya doğru yönde bana gelin eğer!

4 Cevap

Benim için en iyi seçenek, bugün sphinx search. Bu php, raylar, perl ve şimdi bana bir cazibe gibi çalıştı için kadar kullanılabilir. Bir php solution kontrol edebilirsiniz. Örneğin Craiglist kullanın.

Zend Lucene bir PHP sitesi için arama eklemek için güçlü bir yoldur.

Roll Your Own Search Engine with Zend_Search_Lucene: İşte tam olarak nasıl yapılacağı hakkında bir makale

Tekerleği yeniden icat etmeyin. Lucene bakabilirsiniz. Php için bir liman da bulunmaktadır:

Zend Lucene

Lucene sizin için ayrıştırma ve indeksleme yapar ve sorgular yıldırım gibi hızlı.

Çoğu forum kullanıcılar sadece bir dize arama daha isteyecektir. Onlar ihtiyaç duydukları kesin ifade bilmiyor olabilir ve onlar "forum arama" için arama yaptığında, "Nasıl bir forum arama", ilgili terimleri içeren ancak farklı bir sırayla ve başka bir deyişle ayrılmış bir sonuç bulmak için mutluluk olacaktır .

Onlar ne gerek yazım bilmiyorum eğer onlar da bazı bulanık arama gerekebilir. Onlar "sequal" için arama ve "SQL" isteyebilirsiniz.

Tüm bu gibi-arama daha karmaşık bir çözüm doğru çekiyor.

Şimdilik en önemli işaretçisi uygulamak ne, emin daha iyi, daha sonra bir şey lehine dışarı geçiş kolay yapmak gerektiğidir. Eğer daha sonra değiştirmek isteyeceksiniz bildiğiniz gibi arama hot-swap olduğundan emin olun.