2012-03-10 21 views
0

私は自分のウェブサイトに検索機能を作りたいと思っています。私はPHPを使っています。 検索にはどのような基準が必要です。 EXの場合 :誰かが検索機能を作る

How to make soap 

を検索する場合、私はまったく同じ検索文字列 を持つか、検索キーワード(すなわちのために、データベースのエントリを見つけデータベースエントリを見つけるような検索のための多くのアプローチを使用することができ、検索のエントリ。文字列 "How" + "Soap"は、検索文字列 "how soap make"を持つエントリよりも優先度が低くなります)...

したがって、検索には一般的にどのアルゴリズムが使用されますか?

また、フルテキスト検索とは何ですか?

+1

テキスト検索では、通常の頻度に基づいて用語の関連性を判断するために_weighting_システムを使用することがあります(「the」はそれほど有用ではありません)。同様に、単語の組み合わせが存在すると意味が変わる可能性があります(検索結果を調整するために背景に余分な単語が追加される可能性があります)。たとえば、「石鹸を作る」と「石鹸のサーバー」を比較すると、ここでは「石鹸」という言葉は非常に異なることを意味します。テキスト検索のために最適化されているので、SolrやLuceneのようなものを見て始めましょう。 – halfer

答えて

1

これは簡単な答えのための大きなテーマですが、MySQLで複雑な全文検索をどのように実行するかということです。言い換えれば、これは実際にはMySQLの質問であり、PHPの質問ではありません。

基本的には、以下を行う必要があります。 1.データベースのテキストフィールドにフルテキストインデックスを作成します。 2. MySQLのフルテキスト構文を使用して、そのデータベースフィールドに対してクエリを実行します。

SELECT * FROM table 
    WHERE MATCH (fulltextfield) 
    AGAINST ('my search phrase'); 

がよりそれにもっとたくさんありますが、MySQLのマニュアルには行くべき場所です::

MySQLではフルテキストインデックス付きテーブルを照会するための基本的な構文は次のとおりですhttp://dev.mysql.com/doc/refman/5.0/en/fulltext-natural-language.html

あなたの場合本当に高度な全文検索をしたいのであれば、良い提案はSphinxですが、それはおそらくあなたが必要とする以上の高度な方法です。