JSP中實現全文檢索索引
來源:互聯網
上載者:User
全文檢索索引一直都是web方面的關鍵技術,如何在浩如煙海的資訊中找到自己想要的資訊是人們最關心的。鼎鼎大名的GOOGLE就是一個很成功的例子,網路上的人們大部分都用GOOGLE來尋找自己需要的內容。全文檢索索引主要有兩個技術指標:快速和精確。前一段時間做了一個新聞系統,老闆要加上全文檢索索引的功能,想了很久才用一個不太高明的方法實現了。現在分享一下,希望是拋磚引玉吧,如果大家有更好的辦法請跟在後邊:)
先介紹一下我的新聞系統:資料庫裡存新聞的基本資料,如標題,發布人,發布時間,主體新聞的檔案名稱。新聞主體是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">