網站如何加入中文全文檢索功能呢?
如何於您的網站加入中文全文檢索功能呢?
於Windows NT Option Pack當中,包括Index Server,提供中文全文檢索的搜尋功能,可以搜尋網站中Microsoft Word 或Microsoft Excel檔案、text、html、asp等檔案格式內的資料。
本單元教您如何搜尋特定目錄下的資料。
若要執行中文全文檢索的範例,首先安裝Windows NT Option Pack的Microsoft Index Server,然後於Index Server Manager建立一個名為ntop的Catalog。
方法為執行Index Server Manager,於 [Index Server on Local Machine] 按右鍵,選擇 [New] 的 [Catalog]。
接著將Catalog命名為ntop,選擇範例安裝的路徑,建立待搜查的目錄,於所新建立的ntop Catalog,按右鍵,選擇 [New] 的 [Directory],輸入待搜查的目錄,最後要啟動Index Server,於 [Index Server on Local Machine] 按右鍵,選擇 [Start]。
於用戶端使用瀏覽器執行,輸入搜尋字串index。
所找到的標題為本範例的<TITLE>您找到Index Server了</TITLE>。
如何於asp程式加入中文全文檢索功能呢?首先set Q = Server.CreateObject("ixsso.Query")以呼叫中文全文檢索的元件,然後設定:
Q.Query = 搜尋字串
Q.SortBy = 排列順序
Q.Columns = 搜尋的欄位
Q.Catalog = 搜尋的Catalog
Q.MaxRecords = 最多搜尋筆數
最後下一行Q.CreateRecordSet("nonsequential")後即開始搜尋,搜尋的結果放在RS的Recordset中,如下:
RS.RecordCount:搜尋相符的筆數。
RS("rank"):搜尋相符率,最大為1000。
RS("DocTitle"):標題。
RS("vpath"):URL位址。
RS("characterization"):摘要。
RS("size"):檔案大小。
RS("filename"):檔案名稱。
RS("write"):檔案寫入日期時間。
完整的asp程式如下:
<HTML><HEAD>
<TITLE>您找到Index Server了</TITLE>
</HEAD>
<BODY>
<%
if Request("Action") = "搜尋" then
set Q = Server.CreateObject("ixsso.Query")
Q.Query = Request("SearchString")
Q.SortBy = "rank[d]"
Q.Columns = "DocTitle, vpath, filename, size, write,
characterization, rank"
Q.MaxRecords = 50
Q.Catalog = "ntop"
set rs = Q.CreateRecordSet("nonsequential")
Response.Write "總計 " & rs.RecordCount & " 項<p>"
%>
<% Do While Not rs.EOF %>
<%if VarType(rs("DocTitle")) = 1 or rs("DocTitle") = "" then%>
<a href="<%=rs("vpath")%>"><%=
Server.HTMLEncode( rs("filename") )%></a> (<%= rs("rank") %>)
<%else%>
<a href="<%=rs("vpath")%>"><%= Server.HTMLEncode(rs("DocTitle"))%></a> (<%= rs("rank") %>)
<%end if%>
<BR>
<%if VarType(rs("characterization")) = 8 and rs("characterization") <> "" then%>
摘要:<%= Server.HTMLEncode(rs("characterization"))%><br>
<%end if%>
http://<%=Request("server_name")%><%=rs("vpath")%><br>
<%if not rs("size") = "" then%>
size <%=rs("size")%> bytes - <%=rs("write")%> GMT
<%end if%>
<P>
<%
rs.MoveNext
Loop
end if
%>
<hr>
<FORM ACTION="index1.asp" METHOD=GET>
搜尋字串:
<INPUT TYPE="TEXT" NAME="SearchString" SIZE="30" VALUE="<% = Request("SearchString") %>"></TD>
<INPUT TYPE="SUBMIT" NAME="Action" VALUE="搜尋">
</FORM>
<HR></BODY></HTML>
……