2009-04-28 7 views
0

私は自分のウェブサイトで検索機能を実装しようとしています。私は以下のタイプのデータを持っています。MYSQL/PHPのデータから一致するフレーズを抽出するには?

Title    Descr 
-----    ----- 
World News   World news, news from across the world, all world news events covered 
World Sports   World sports news, for all of sports people, sports is a famous world 

今、私は、ユーザーが「世界のニュース」を検索した場合、次につながるたくは次のように表示され、

World News (title) 
... all world news events covered ... (descr) 

基本的に私は、ランダムにいくつかのフレーズを表示したいです。ユーザーその後、「世界のニュース」のためにいくつかの時間を検索するときと同じように、彼は、上記時には以下のようなのようになり得るでしょう

World News (title) 
World news, news from across the world, ... (descr) 

我々がもしそのないmysqlのクエリを使用してこの種の機能を取得する、またはことができる方法を教えてください直接mysqlのクエリを介して可能などのようにPHPを使用して可能です。

Googleは時々同じことを行い、Googleはフレーズが中央を形成し、時にはそれが始まるテキストをdisplayes displayes。

ありがとうございました。

答えて

-3

あなたはMySQLのテーブルに格納されたタイトルと説明を持っている場合は、このような何かを試してみてください。

SELECT descr FROM yourTable WHERE title='World News' ORDER BY RAND() 

ORDER BY RAND()条件がランダムにタイトルの条件はWorld news一致

ている行の1つから選択します
+0

あなたは私の質問を正しく理解していないと思います。ランダムな行は必要ありません。特定の行からランダムに選択されたフレーズが必要です。 – Prashant

1

あなたが何を達成するためのMySQLの方法があるか分かりません。私はデータベースからフィールドを取り出し、PHPのexplode()関数を使ってフレーズをランダム化します:

$desc_field_result = "World news, news from across the world, all world news events covered"; // The "Desc" field from your MySQL Query 

$desc_field_array = explode(",",$desc_field_result); 

$selected_desc = $desc_field_array[rand(0,sizeof($desc_field_array)-1)]; 

echo $selected_desc; 
0

Googleはランダムな文を返すだけではありません。あなたが検索した単語を含むスニペット(または2つ)を返します。 MySQLはそれを行うことはできません。 PHPで手動で行う必要があります(返されたデータベース行のキーワードを手動で検索し、適切なスニペットを表示する必要があります)。これを行う検索エンジン(Xapian、Sphinx、Apache Luceneなど)を使用します。

関連する問題