您的位置:首页 > 编程语言 > ASP

如何使用 ASP.NET 应用程序以使用 Visual C#.NET 来查询索引服务目录

2014-06-25 00:00 806 查看
摘要: 本分步指南介绍了如何创建索引服务目录。本文还介绍如何使用 ASP.NET Web 应用程序对查询索引服务目录。

创建一个测试文件夹

在您的计算机的 C 驱动器上创建一个新文件夹。名称文件夹TestIndexService,目录下建文件夹为0,然后添加txt文件并写上内容。

创建索引服务目录

单击开始,单击运行,键入compmgmt.msc,,然后单击确定

展开服务和应用程序

用鼠标右键单击索引服务,指向新建,然后单击目录

名称文本框中,键入TestCatalog。

单击浏览,找到您希望放置目录(例如C:\TestIndexService),的文件夹,然后单击确定两次。

创建新目录,您会收到以下消息:索引服务重新启动之前,编录将保持离线单击确定

右键单击索引服务,然后单击停止以停止索引服务。

右键单击索引服务,然后单击启动以重新启动索引服务。

定义编录的范围

创建新编录后,添加您想要包括在编录的范围中的文件夹。作用域是包含在目录中,并从编录中排除的文件夹组。范围定义的内容包含在索引中并从索引中排除。包含或排除的每个文件夹中,为其所有子文件夹也要包含或排除。

双击TestCatalog (您在"创建测试文件夹"一节中创建的目录)。

用鼠标右键单击目录,指向新建,然后单击目录

单击浏览,然后单击您想要添加 (C:\TestIndexService\0),该文件夹,然后单击确定

注意:在下,包含在索引中的?,单击

创建 ASP.NET Web 应用程序

1.启动 Microsoft Visual Studio.NET。

2.使用 Visual C#.NET 创建一个新的ASP.NET Web 应用程序项目。IndexQueryApp为项目命名。默认情况下,会创建 Default.aspx。

3.在设计视图中,用鼠标右键单击Default,然后单击查看 HTML 源

4.现有的 HTML 代码替换为下面的代码示例:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/
8000
xhtml1-transitional.dtd">
<html>
<head>
<title>WebForm3</title>
<meta name="GENERATOR" content="Microsoft Visual Studio 7.0">
<meta name="CODE_LANGUAGE" content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</head>
<body ms_positioning="GridLayout">
<form id="WebForm3" method="post" runat="server">
<asp:TextBox ID="TextBox1" Style="z-index: 101; left: 90px; position: absolute; top: 136px"
runat="server"></asp:TextBox>
<asp:DataGrid ID="DataGrid1" Style="z-index: 102; left: 328px; position: absolute;
top: 138px" runat="server">
</asp:DataGrid>
<asp:Button ID="Button1" Style="z-index: 103; left: 92px; position: absolute; top: 199px"
runat="server" Text="Button" OnClick="Button1_Click"></asp:Button>
</form>
</body>
</html>


5.在解决方案资源管理器中,用鼠标右键单击Default,然后单击查看代码。现有代码替换为下面的代码示例:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
// Catalog Name
string strCatalog = "TestCatalog";
string strQuery = "";

//strQuery = "Select DocTitle,Filename,Size,PATH,URL from Scope()  where FREETEXT('" + TextBox1.Text + "')";
strQuery = "Select DocTitle,Filename,Size,PATH,URL from Scope()  where CONTAINS(Contents,'" + TextBox1.Text + "')";
// TextBox1.Text is the word that you type in the text box to query by using Indexing Service.
string connstring = "Provider=MSIDXS.1;Integrated Security .='';Data Source=" + strCatalog;
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(connstring);
conn.Open();
System.Data.OleDb.OleDbDataAdapter cmd = new System.Data.OleDb.OleDbDataAdapter(strQuery, conn);
System.Data.DataSet testDataSet = new System.Data.DataSet();
cmd.Fill(testDataSet, "SearchResults");
System.Data.DataView source = new System.Data.DataView(testDataSet.Tables[0]);
DataGrid1.DataSource = source;
DataGrid1.DataBind();
}
}


6.在生成菜单中,单击生成解决方案

运行应用程序

调试菜单上,单击开始运行该应用程序。

在文本框中键入查询的 word文档。(您可以键入txt文件中的任何单词。

单击按钮。请注意数据网格出现,其中包含txt文件的查询结果。

解决问题

等待要生成的索引

索引服务会自动处理 TestCatalog,并准备进行索引的单词列表。在运行示例代码时,可能看不到结果,因为索引服务需要一些时间来建立索引的快速。

若要验证索引的状态,请先单击计算机管理管理单元的右窗格中,索引服务然后验证 TestCatalog 的单词列表值是否大于零。如果单词列表值为零,等待以生成列表的索引。

索引数据可能已损坏

如果搜索没有返回预期的搜索结果,查询索引时,索引数据可能已损坏。若要解决此问题,请停止并重新启动索引服务,以重新编制所有文档的都索引。若要执行此操作,请按照下列步骤操作:

单击开始,指向设置,然后单击控制面板

双击管理工具,然后双击计算机管理

在控制台树中,双击服务和应用程序

右键单击索引服务,然后单击停止

再次右键单击索引服务,然后单击开始

原文可参考 http://support.microsoft.com/kb/820983/zh-cn
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐