首页 | 源码下载 | 编程控件 | 书籍教程 | 应用方案 | 设计素材 | 项目交易 | 开发文档 | 商业源码 | 我的帐号
登陆我的帐号
帐 号:
密 码:
我还不是会员,需要注册!

截止2004年12月16日
本站源码总量(商业源码除外)RAR压缩为 4,206,733 KB。其中免费源码为 1,124,495 KB,会员源码为 3,082,238 KB
C/C++ 129,555 KB
Delphi 1,258,381 KB
Java 120,937 KB
.Net 36,886 KB
PowerBuilder 954,525 KB
Visual Basic 923,454 KB
ASP 259,795 KB
JSP 4,987 KB
其他 94,723 KB

本站是中国频道、中资源、时代互联顶级代理:注册国际域名70元,国内域名130元,各类ASP、PHP、JSP空间8折优惠!
本站承担各类网站制作开发及方案策划,项目经验丰富,欢迎洽谈!

网站动态
网站春节前夕再次改版!
现在下载速度大幅提高!
想免费下载源码吗?
还有众多资源恭候大家免费…
道歉!
关于资源更新的说明
关于下载错误的原因!
源码资源网新版网站投入运…

当前位置:源码资源网首页 > 开发文档首页 > .Net >ASP.NET网站全文检索(代码部分)

ASP.NET网站全文检索(代码部分)
人气:30 文字大小:     作者:

前文 ASP.NET网站全文检索 主要是收集整理的一些资料,本文是使用Microsoft Indexing Service进行网站全文检索的代码部分


ASPX页面代码如下:


<tr>
<td class="record" height="20">关 键 词:
<asp:textbox id="txtQuery" accessKey="Q" runat="server" Width="250px" MaxLength="50"></asp:textbox>&nbsp;
<asp:button id="btnSearch" runat="server" Text="搜索" EnableViewState="False"></asp:button></td>
</tr>
<tr>
<td height="10">查询方式:
<asp:dropdownlist id="cboQueryType" accessKey="T" runat="server" Width="250px" EnableViewState="False">
<asp:ListItem Value="All" Selected="True">包含全部的字词</asp:ListItem>
<asp:ListItem Value="Any">包含任何一个字词</asp:ListItem>
<asp:ListItem Value="Boolean">布尔表达式查询</asp:ListItem>
<asp:ListItem Value="Exact">全字匹配</asp:ListItem>
<asp:ListItem Value="Natural">自然语言查询</asp:ListItem>
</asp:dropdownlist>
</td>
</tr>
<tr>
<td class="record" height="20">查询范围:
<asp:dropdownlist id="cboDirectory" accessKey="D" runat="server" Width="250px" EnableViewState="False">
<asp:ListItem Value="/" Selected="True">整个网站</asp:ListItem>
</asp:dropdownlist>
</td>
</tr>
<tr>
<td class="record" height="20"><asp:label id="lblResultCount" runat="server" Font-Italic="True" visible="False" EnableViewState="False"></asp:label></td>
</tr>
<tr>
<td vAlign="top" height="210">
<asp:datagrid id="dgResultsGrid" runat="server" PageSize="15" AllowPaging="True" AutoGenerateColumns="False"
Visible="False" GridLines="None" EnableViewState="False">
<ItemStyle HorizontalAlign="Left" VerticalAlign="Top"></ItemStyle>
<HeaderStyle Font-Bold="True"></HeaderStyle>
<Columns>
<asp:TemplateColumn HeaderText="排名">
<HeaderStyle Width="40px"></HeaderStyle>
<ItemTemplate>
<%#  cint DataBinder.Eval Container, "DataSetIndex"))) + 1 %>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="文档信息">
<ItemStyle HorizontalAlign="Left" VerticalAlign="Top"></ItemStyle>
<ItemTemplate>
<p>
<a href=’<%# DataBinder.Eval Container.DataItem, "VPath")%>’ target="_blank">
<%# GetTitle Container.DataItem)%>
</a>
<br>
<%# GetCharacterization Container.DataItem)%>
<br>
<i><a href=’<%# DataBinder.Eval Container.DataItem, "VPath")%>’ target="_blank">http://<%# Request.ServerVariables "SERVER_NAME")%><%# DataBinder.Eval Container.DataItem, "VPath")%></a>
-
<%# GetFileSize Container.DataItem)%>
k </i>
</p>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle Visible="False"></PagerStyle>
</asp:datagrid>
</td>
</tr>
后台代码,使用VB.NET书写:



’ 绑定查询结果
Private Sub BindSearch )Sub BindSearch )


Dim dbAdapter As OleDbDataAdapter = New System.Data.OleDb.OleDbDataAdapter
Dim oleDbSelectCommand1 As OleDbCommand = New System.Data.OleDb.OleDbCommand
Dim dbConnection As OleDbConnection = New System.Data.OleDb.OleDbConnection
Dim ds As DataSet = New DataSet "Results")
Dim rows As Integer = 0


dbAdapter.SelectCommand = oleDbSelectCommand1
oleDbSelectCommand1.Connection = dbConnection
dbConnection.ConnectionString = "Provider=MSIDXS.1;Integrated Security .=’’;Data Source=Web"


Try
dbAdapter.SelectCommand.CommandText = Command
If CStr ViewState "KEY")) <> "" Then
dbAdapter.Fill ds)
rows = ds.Tables 0).Rows.Count
Else
lblResultCount.Text = "请输入关键词进行查询!"
End If


If Not ds Is Nothing AndAlso rows > 0 Then
’ 自定义分页,与查询逻辑无关
ViewState "TOTALROWS") = rows
CalculatePage )


dgResultsGrid.AllowPaging = True
dgResultsGrid.PageSize = CInt ViewState "PAGESIZE"))
dgResultsGrid.CurrentPageIndex = CInt ViewState "PAGEINDEX")) - 1


lblResultCount.ForeColor = Color.Black
lblResultCount.Text = String.Format "找到 {0} 个相关网页", rows)


dgResultsGrid.DataSource = ds
dgResultsGrid.DataBind )
dgResultsGrid.Visible =  rows > 0)
Else
ViewState "TOTALROWS") = 0
CalculatePage )
End If


Catch ex As Exception
lblResultCount.ForeColor = Color.Red
lblResultCount.Text = String.Format "无法执行特定的查询: {0}", ex.Message)
dgResultsGrid.Visible = False
Finally
lblResultCount.Visible = True
End Try
’ 自定义分页
BindNavigate )


End Sub



Private ReadOnly Property Command )Property Command ) As String
Get
Dim query As String
query = String.Format "SELECT Rank, VPath, DocTitle, Filename, Size, Characterization, Write FROM SCOPE ’DEEP TRAVERSAL OF ""{0}""’) WHERE Not CONTAINS FileName,’""*.txt"" OR ""*.js"" OR ""*.css"" OR ""*.config"" OR ""*.xml""’)", CStr ViewState "DIR")))


Dim type As String = CStr ViewState "TYPE")).ToLower )
Dim fmt As String = " AND  CONTAINS ’{0}’) OR CONTAINS DocTitle, ’{0}’))"
Dim text As String = CStr ViewState "KEY")).Replace ";", "").Trim


If type = "all" Or type = "any" Or type = "boolean" Then
Dim words ) As String = Split text, " ")
Dim len As Integer = words.Length
Dim i As Integer


For i = 0 To len - 1 Step i + 1
Dim word As String = words i)
If type = "boolean" AndAlso  String.Compare word, "and", True) = 0 OrElse String.Compare word, "or", True) = 0 OrElse String.Compare word, "not", True) = 0 OrElse String.Compare word, "near", True) = 0) Then
ElseIf word <> "" Then
words i) = String.Format """{0}""", word)


If i < len - 1 Then
If type = "all" Then
words i) += " AND"
ElseIf type = "any" Then
words i) += " OR"
End If
End If
End If
Next


query += String.Format fmt, String.Join " ", words))


ElseIf type = "exact" Then
query += String.Format fmt, text)
ElseIf type = "natural" Then
query += String.Format " AND FREETEXT ’{0}’)", text)
End If


query += " ORDER BY Rank DESC"


Return query
End Get
End Property


’ 如果网页没有Title,那么使用文件名
Protected Function GetTitle )Function GetTitle ByVal value As Object) As Object
Dim title As String = Convert.ToString DataBinder.Eval value, "DocTitle"))


If Not  title Is Nothing) And title.Length > 0 Then
Return title ’
Else
Return DataBinder.Eval value, "Filename")
End If
End Function ’GetTitle


’ 取摘要
Protected Function GetCharacterization )Function GetCharacterization ByVal value As Object) As String
Return Server.HtmlEncode Convert.ToString DataBinder.Eval value, "Characterization")))
End Function


’ 取文件尺寸,单位KB
Protected Function GetFileSize )Function GetFileSize ByVal value As Object) As String
Return Convert.ToString CInt Convert.ToInt32 DataBinder.Eval value, "Size")) / 1000))
End Function


界面外观如下图:



 

文章出处:   发表时间:2004-11-22 22:48:05

1条数据记录,分1页显示 上一页 < [1] > 下一页
相关文章  
[源码下载] · comicq源代码
[书籍教程] · VC++ 6.0数据库系统开发实例导航
[书籍教程] · Delphi 7数据库编程学习捷径
[书籍教程] · Delphi百例精解
[书籍教程] · DELPHI综合开发文档

相关评论  
 当前没有评论!
请登陆后再来发表评论!
当前位置:源码资源网首页 > 开发文档首页 > ASP.NET网站全文检索(代码部分)
会员升级 | 广告服务 | 网站开发 | 联系我们 | 网站动态 | 客户反馈

CodeRes.com 保留所有权利 2004
本站所有资源仅供学习参考,版权归原作者所有,如侵犯了您的权益请与我们联系