日期:2012-11-15  浏览次数:21018 次

網站如何加入中文全文檢索功能呢?

如何於您的網站加入中文全文檢索功能呢?

於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>