2011-06-27 20 views
1

私は簡単な検索機能を構築しています。検索機能

アイデアは、コード、タイトル、説明、カテゴリのフィールドを検索することです。

カテゴリとコードは単なる単語(%code%)のように検索するのは非常に簡単です。

ただし、ユーザーが入力するキーワードを検索するためにタイトルと説明をどのように分類するのかはっきりしていません。

誰にもこのための良いテクニックはありますか?

ありがとうございました。情報量の少ない考える

答えて

2

あなたはFULLTEXTインデックスを有効にし、その上でFULLTEXT検索を使用することができるのMySQLからMyISAMストレージを使用している場合。その詳細については、this linkを参照してください。

ただし、私のデータベースでも使用しているInnoDBを使用している場合は、MySQLで直接有効にすることはできません。

いくつかのオプションがあります。あなたは自分でキーワードを分割し、それらのキーワードの1つまたは複数と一致するエントリを検索し、その後、注文に合ったキーワードの数を確認します。また、それをクエリに含めることもできますが、キーワードごとにクエリを作成し、それらの結果を親クエリと組み合わせる必要があります。

もう1つのオプションは、パフォーマンスと柔軟性のために最終的に選択したオプションです.SOLRサーバーを使用し、php solr_client(the php manual on itを参照)を使用することです。 SOLRサーバーは、いくつかの(かなり単純な)構成ファイルを指定してデータベースを索引付けし、索引付けされたフィールドで全文検索を許可します。 SOLRサーバーの設定に関する詳細は、SOLR:tutorialのマニュアルを参照してください。

もちろん、他にも多くの方法やツールがあります。上記は私が過去に使った、あるいはまだ使っていることのほんの一部です(私はsolrを使って本当にうれしいですが、それは個人的なものです、私は推測します)。

幸運。

+0

お返事ありがとうございます。次回の移動を行う前に、提供したすべてのリンクを確認しています。 – sark9012

0

あなたが望むのは、MySQLがうまくいくものではありません。 Yhnはいくつかのオプションを述べました。

MySQLのFULLTEXT索引は、正当な理由で人気がありません。

テキストをキーワードに分割し、元のアイテムにリンクしている索引付けされた表を作成すると機能します。しかし、それを行うことは、本質的には、独自の検索エンジンを構築するようなものです。

あなたが構築する可能性があるよりも優れた検索エンジンが利用できます。 YhnはSOLRと書かれていますが、これは私が使用しているSphinx Searchも言及したいと思います。 SOLRには、Sphinxにはない面白い機能がいくつかありますが、Sphinxが学びやすく、使い始めたことを感じました。それはあなたの配慮の価値がある。

+0

私はスフィンクスの検索を見ていきます。応答に感謝します。 – sark9012