2017-10-17 9 views
0

私は255文字の長さのテキストを持っています。 そして、私はキーワードを含むデータベースを持っています。 一致するキーワードを見つけるために、文章をテストするPHPやMYSQLの方法はありますか?PHP/MYSQLはキーワードと文を一致させますか?

(一種のStackOverflowの質問を入力した後、タグを示唆しないように)eg.theテキストです:

ニューヨークタイムズ:最新ニュースを検索、マルチメディアは、ワシントンに&意見 、ビジネス、スポーツをレビュー、映画、旅行、本、仕事。

と私はどこから始めればわからないんだけど、私のMySQL DBをnewspaper, news, book.

が含まれていると言う...最善のアプローチは何ですか?

+0

何[ 'LIKE'](https://www.w3schools.com/sql/sql_like.asp)についてはどうですか? – Swellar

+0

[MATCH()... AGAINST](https://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html)があなたの答えです。 – ishegg

答えて

0

私はfulltext indexing functionsの反対をしたいと思います。データベースにはキーワードが含まれていますが、検索するテキストの本文ではありません。

したがって、MATCH() AGAINST()を使用するようには機能しません。データベース内のキーワードが検索されます。

データベースからPHPスクリプトにキーワードを取得し、そのキーワードをPHP文字列関数と比較することができます。

$stmt = $pdo->query("SELECT word FROM keywords"); 
while ($row = $stmt->fetchAll()) { 
    if (stripos($text, $row["word"])) { 
    $found = true; 
    break; 
    } 
} 

それとも

$stmt = $pdo->query("SELECT GROUP_CONCAT(word SEPARATOR '|') AS pat FROM keywords"); 
$row = $stmt->fetch(); 
if (preg_match("/{$row['pat']}/i", $text)) { 
    $found = true; 
} 
関連する問題