如何使用 ASP.NET 應用程式以使用 Visual C#.NET 查詢索引服務類別目錄

文章翻譯 文章翻譯
文章編號: 820983 - 檢視此文章適用的產品。
本文章的有 Microsoft Visual Basic.NET] 版本請參閱 820105
全部展開 | 全部摺疊

在此頁中

結論

本文將逐步告訴您,如何建立索引服務類別目錄。本文也將告訴您如何使用 ASP.NET Web 應用程式查詢索引服務資料目錄。

建立測試資料夾

  1. 您的電腦 C 磁碟機上建立新的資料夾。命名資料夾 myCatalogFolder
  2. 啟動文字編輯器 (如 [記事本],並將下列文字貼在空白的文件:
    這是測試索引伺服器查詢的測試文件,此檔案名稱是 IndexText.text。
  3. 將檔案儲存為 C:\myCatalogFolder\IndexText.txt

建立索引服務類別目錄

  1. 按一下 [開始]、 按一下 [執行]、 輸入 compmgmt.msc,然後按一下 [確定]]。
  2. 展開 [服務及應用程式]。
  3. 索引服務] 上按一下滑鼠右鍵,指向 [新增],然後再按一下 [型錄
  4. 在 [名稱] 文字方塊中,輸入 TestCatalog
  5. 按一下 [瀏覽,找出您想放在類別目錄的資料夾,然後按一下 [確定] 兩次。
  6. 在下 新增目錄建立,您會收到下列訊息:
    類別目錄將維持離線直到索引服務重新啟動為止
    按一下 [確定]
  7. 用滑鼠右鍵按一下 [索引服務],然後再按一下 [停止索引服務 停止
  8. 用滑鼠右鍵按一下 [索引服務],然後再按一下 [[開始],以重新啟動 「 索引服務。

定義類別目錄的範圍

在建立新的類別目錄後,新增您想要包含在類別目錄的範圍中的資料夾。範圍是包含在類別目錄,而且從類別目錄中排除的資料夾組。範圍定義內容,包含在索引並從索引中排除。針對每個資料夾所包含或排除,所有子資料夾也包含或排除。
  1. 連按兩下 TestCatalog (您在 < 建立測試資料夾 」 一節中建立該目錄)。
  2. 目錄 上按一下滑鼠右鍵,指向 [新增],然後再按一下 [目錄]。
  3. 按一下 [瀏覽],找出,然後按一下您想要新增 (C:\myCatalogFolder\) 的資料夾],然後再按一下 [確定]]。

    附註在下 包含索引??,請按一下 [是]

建立 ASP.NET Web 應用程式

  1. 啟動 Microsoft Visual Studio.NET。
  2. 用來建立一個新的 Visual C#.NET ASP.NET Web 應用程式 專案。專案 IndexQueryApp 的名稱。 根據預設值,WebForm1.aspx,即建立。
  3. 在 [設計] 檢視中 WebForm1,] 上按一下滑鼠右鍵,然後按一下 [檢視 HTML 原始檔]。
  4. Replace the existing HTML code with following sample code:
    <%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="IndexQueryApp.WebForm1" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <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"></asp:Button>
          </form>
       </body>
    </HTML>
  5. 在 [方案總管] 中 WebForm1,] 上按一下滑鼠右鍵,然後按一下 [檢視程式碼。現有的程式碼取代下列的範例程式碼:
    using System;
    using System.Data;
    
    namespace IndexQueryApp
    {
       public class WebForm1 : System.Web.UI.Page
       {
          protected System.Web.UI.WebControls.TextBox TextBox1;
          protected System.Web.UI.WebControls.DataGrid DataGrid1;
          protected System.Web.UI.WebControls.Button Button1;
       
    		private void Page_Load(object sender, System.EventArgs e)
    		{
    			// Put user code to initialize the page here.
    		}
    
    		#region Web Form Designer generated code
    		override protected void OnInit(EventArgs e)
    		{
    			//
    			// CODEGEN: The ASP.NET Web Form Designer requires this call.
    			//
    			InitializeComponent();
    			base.OnInit(e);
    		}
    		
    		/// <summary>
    		/// Required method for Designer support - do not modify
    		/// the contents of this method by using the code editor.
    		/// </summary>
    		private void InitializeComponent()
    		{     
                                 this.Button1.Click += new System.EventHandler(this.Button1_Click);
                                 this.Load += new System.EventHandler(this.Page_Load);
                              }
    		#endregion
    
          private void Button1_Click(object sender, System.EventArgs e)
          {
             // Catalog Name
             string strCatalog = "TestCatalog";
             string strQuery="";
    
             strQuery = "Select DocTitle,Filename,Size,PATH,URL from Scope()  where FREETEXT('" +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");
             DataView source = new DataView(testDataSet.Tables[0]);
             DataGrid1.DataSource = source;
             DataGrid1.DataBind();
          }     
      }
    }
    
  6. 在 [建置] 功能表上按一下 建置方案

執行應用程式

  1. 在 [偵錯] 功能表上按一下 [開始] 執行應用程式]。
  2. 在 [文字] 方塊中鍵入查詢字 文件。(您可以鍵入從 IndexText.txt 檔案的任何字。
  3. 按一下 [按鈕]。請注意資料格中會出現,且包含查詢結果從 IndexText.txt 檔案。

疑難排解

等候要建置索引

[索引服務會自動處理 [TestCatalog,並準備單字清單以編製索引。當您執行範例程式碼時,您可能不會收到結果如預期般運作,因為索引服務需要一些時間來建立索引一樣快速。

若要驗證索引狀態,啟動 [電腦管理 MMC] 嵌入式管理單元英吋按一下右窗格中的 索引服務,然後確認 [TestCatalog Word 清單 的值是大於零。如果 Word 清單 值是零,等候建置清單索引。

索引資料可能已損毀

如果搜尋沒有傳回預期的搜尋結果,當查詢索引,索引資料已損。若要此問題的疑難排解停止],然後重新啟動索引服務] 來重新索引所有文件]。要這麼做,請您執行下列步驟:
  1. 按一下 [開始],指向 [設定],然後再按一下 [控制台]
  2. 連按兩下 [系統管理工具],然後再按兩下 [電腦管理]。
  3. 在主控台] 樹狀目錄中連按兩下 [服務及應用程式
  4. 用滑鼠右鍵按一下 [索引服務,然後按一下 [停止]。
  5. 以滑鼠右鍵按一下 索引服務,然後按一下 [開始]

?考

如需有關 「 索引服務的詳細資訊,請造訪下列 Microsoft 網站]:
http://msdn2.microsoft.com/en-us/library/ms689644.aspx
如需詳細資訊按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中 「 文件]:
311521如何使用 Microsoft 索引伺服器來索引 ASP.NET 內容
如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
308202如何建立及設定類別目錄以編製索引


屬性

文章編號: 820983 - 上次校閱: 2007年1月12日 - 版次: 3.4
這篇文章中的資訊適用於:
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
  • Microsoft Visual C# .NET 2003 標準版
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Windows Indexing Service 2.0
關鍵字:?
kbmt kbquery kbservice kbdatabinding kbdataadapter kbwebserver kbwebforms kbhowtomaster KB820983 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:820983
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com