先介紹一下我的新聞系統:資料庫裡存新聞的基本資料,如標題,發布人,發布時間,主體新聞的檔案名稱。新聞主體是html格式的靜態頁(第一是要提高速度,減少資料庫的壓力。第二是資料庫處理大字串的時候會有問題。)。全文檢索索引的思路是:先從資料庫裡把所有的新聞檢索出來,把主體新聞找到,然後通過io操作把主體新聞讀到一個字串中。再去掉多餘的東西,象html標記什麼的,再用Regex對這個字串尋找,如果找到合格資訊,就記錄這條新聞。最後返回所有的合格新聞顯示給使用者。
下面這段代碼是輸入查詢條件的代碼,查詢關鍵字用”+”隔開:search.jsp
<html>
<head>
<link rel="stylesheet" href="css/style3.css">
<title>新聞搜尋</title>
<script language="javascript">
function subform()
{
if (document.zl_form.keyword.value=="")
{
alert("請輸入關鍵字!");
document.zl_form.keyword.focus();
return false;
}
return true;
}
</script>
</head>
<body bgcolor="#F0F6E2">
<form name="zl_form" target="_new" method="post" action="aftsearch.jsp" onsubmit="return subform()">
<table width="600" bgcolor="#F0F6E2">
<tr>
<td colspan="4" height="10"> </td>
</tr>
<tr>
<td width="14%">輸入查詢關鍵字:</td>
<td align="left" width="65%">
<input size="50" type="text" name="keyword" style="font-size: 9pt">
<input type="submit" name="submit" value="搜尋" style="font-size: 9pt">
</td>
</tr>
<tr>
<td colspan="2" height="9" align="left">
<br>
<font color="red" size="+1">說明:如果有多個查詢條件,中間用</font><font size="+2">+</font><font color="red" size="+1">隔開。如:1+2+3+4...</font></td>
</tr>