1

PHPで最初からフォーラムを構築しています。私はphpBB:sのデータベース構造のほとんどを使用しました。

しかし今、私は検索機能について考えていますか?、すべての投稿で本当に速く検索できるようにするための良いデザインは何ですか?mysqlの%query_string%よりも良い方法があるはずです:)

たぶん、すべての文を単語に分解し、単語をハッシュテーブルのキーとし、値は単語が含まれるすべての投稿のコンマ区切りのリストですか?そうすれば、投稿を削除しても問題はほとんどありませんが、アプローチの方が良いと思います。

最初から簡単な解決策を使用できると思いますが、フォーラムが大きくなったときにコードを変更したくありません。

アイデアをありがとう、または私を正しい方向に向けることができれば!

4

4 に答える 4

4

Zend Luceneは、PHPサイトに検索を追加するための強力な方法です。

これを正確に行う方法についての記事は次のとおりです。Zend_Search_Luceneを使用して独自の検索エンジンをロールする

于 2009-07-20T07:52:08.407 に答える
1

今日の私にとって最良の選択肢はスフィンクス検索です。それはphp、rails、perlで使用でき、今まで私にとっては魅力のように機能していました。あなたはphpソリューションをチェックすることができます。たとえばCraiglistはそれを使用します。

于 2009-07-20T07:51:23.337 に答える
1

車輪の再発明をしないでください。Luceneを見てください。php用のポートもあります:

Zend Lucene

Luceneが解析とインデックス作成を行い、クエリは非常に高速です。

于 2009-07-20T07:52:17.953 に答える
0

ほとんどのフォーラムユーザーは、単なる文字列検索以上のものを望んでいます。彼らは必要な正確なフレーズを知らないかもしれません、そして彼らが「フォーラム検索」を検索するとき、彼らは「フォーラムを検索する方法」の結果を見つけて喜ぶでしょう。 。

また、必要なもののスペルがわからない場合は、あいまい検索が必要になる場合があります。彼らは「sequal」を検索し、「sql」が必要な場合があります。

これらはすべて、類似検索よりも複雑なソリューションを示しています。

今のところ最も重要な指針は、実装するものが何であれ、後でより良いものに切り替えるのが簡単であることを確認する必要があるということです。後で変更する必要があることがわかっているので、検索がホットスワップ可能であることを確認してください。

于 2009-07-20T07:54:25.937 に答える