2009-07-20 11 views
1

私はPHPでフォーラムを最初から構築しています。私はphpBBのデータベース構造の大半を使用しています。大きなフォーラムで高速検索機能を開発しますか?

しかし、今では検索機能について考えていますか?すべての記事をすばやく検索できる良いデザインは何ですか。私はmysqlの%query_string%よりも良い方法があるはずだと思います:)

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

私は単純なソリューションを使用することができますが、フォーラムが大きくなるとコードを変更する必要はありません。

ご意見ありがとうございましたか、私に正しい方向を教えていただけたらと思います!

+1

Googleをお試しください。 –

+1

あなたの最良の賭け金(Google以外)はおそらくLuceneのような専用の検索ソフトウェアです。 – derobert

答えて

1

私にとって今日の最良の選択肢はsphinx searchです。これはphp、rails、perlで使用することができ、今までは魅力的に働いていました。 php solutionを確認できます。たとえば、クレイグリストを使用します。

+0

Luceneは私が見ることができるutf8をサポートしていないので、チップのおかげで、私はこの1つを試してみます。 –

+1

Zend Luceneはutf8をデフォルトとして使用します: http://framework.zend.com/manual/en/zend.search.lucene.best-practice.html#zend.search.lucene.best-practice.encoding –

1

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

Zend Lucene

Luceneにはあなたのための解析とインデックス付けを行い、クエリは稲妻のように速いです。

0

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

彼らは必要なもののスペルがわからない場合、ファジー検索が必要な場合もあります。彼らは "sequal"を検索し、 "sql"を探しているかもしれません。

このすべては、あなたのlike-searchよりも複雑な解決策を指しています。

ここで最も重要な点は、実装しているものは、後で何かを優先して切り替えることが容易であることです。後で変更することがわかっているので、検索がホットスワップ可能であることを確認してください。

関連する問題