クエリでWHEREcluseを使用してフィールド内の完全なフレーズに一致させる代わりに、ユーザーがフレーズの一部を入力したときにセマンティック検索を実行できるようにする検索ボックスを作成したい、フレーズの意味と一致することができる適切な結果を表示します。あなたがグーグルを通して検索しようとするとき、グーグルが正確にどのように機能するか。これを達成することは可能ですか、そして誰かが何かアイデアを持っていますか?
以下は、データベースを使用して、行が検索ボックスに入力されたフレーズと正確に一致するかどうかを確認するために現在使用しているコードです。
<?php
//connected to DB
foreach (array('questioncontent') as $varname) {
$questioncontent = (isset($_POST[$varname])) ? $_POST[$varname] : '';
}
?>
<p>Search for a previous question by entering in a phrase in the search box below and submitting the phrase</p>
<form action="previousquestions.php" method="post" id="modalform">
<p>Search: <input type="text" name="questioncontent" value="<?php echo $questioncontent; ?>" /></p>
<p><input id="searchquestion" name="searchQuestion" type="submit" value="Search" /></p>
</form>
<?php
if (isset($_POST['searchQuestion'])) {
$questionquery = "SELECT QuestionContent FROM Question
WHERE(QuestionContent = '".mysql_real_escape_string($questioncontent)."')";
$questionnum = mysql_num_rows($questionresult = mysql_query($questionquery));
if($questionnum !=0){
$output = "";
while ($questionrow = mysql_fetch_array($questionresult)) {
$output .= "
<table>
<tr>
<td>{$questionrow['QuestionContent']}</td>
</tr>";
}
$output .= " </table>";
echo $output;
}
}