L'utilizzo di un'applicazione ASP.NET per eseguire una query un catalogo servizio di indicizzazione utilizzando Visual C# .NET

Traduzione articoli Traduzione articoli
Identificativo articolo: 820983 - Visualizza i prodotti a cui si riferisce l?articolo.
Per la una versione di Microsoft Visual Basic .NET di questo articolo, vedere 820105.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

In questo articolo viene descritto come creare un catalogo servizio di indicizzazione. Viene inoltre descritto come utilizzare un Web di ASP.NET dell'applicazione i cataloghi del servizio di indicizzazione di query.

Creare una cartella di test

  1. Creare una nuova cartella sull'unità C del computer. Nome della cartella myCatalogFolder .
  2. Avviare un editor di testo, ad esempio il blocco note e incollare il seguente testo in un documento vuoto:
    questo è documento di prova per testare la query server di indice e il nome del file è IndexText.text.
  3. Salvare il file come C:\myCatalogFolder\IndexText.txt .

Creare un catalogo servizio di indicizzazione

  1. Fare clic su Start , scegliere Esegui , digitare compmgmt.msc e quindi fare clic su OK .
  2. Espandere servizi e applicazioni .
  3. Fare clic con il pulsante destro del mouse sul Servizio di indicizzazione , scegliere Nuovo e quindi fare clic su catalogo .
  4. Nella casella di testo nome digitare TestCatalog .
  5. Fare clic su Sfoglia , individuare la cartella in cui inserire il catalogo e quindi fare clic su OK due volte.
  6. Nella casella di gruppo nuovo catalogo creato , viene visualizzato il seguente messaggio:
    Catalogo rimarrà non in linea fino a quando non viene riavviato il servizio di indicizzazione
    Fare clic su OK .
  7. Fare clic con il pulsante destro del mouse sul Servizio di indicizzazione e quindi fare clic su Interrompi per interrompere il servizio di indicizzazione.
  8. Fare clic con il pulsante destro del mouse sul Servizio di indicizzazione e quindi fare clic su Start per riavviare il servizio di indicizzazione.

Definire l'ambito del catalogo

Dopo aver creato un nuovo catalogo, aggiungere le cartelle di che si desidera includere nell'ambito del catalogo. L'ambito è l'insieme di cartelle che si è inclusi nel catalogo ed esclusi dal catalogo. L'ambito definisce il contenuto che è inclusa nell'indice ed escluse dall'indice. Per ogni cartella che è incluso o escluso, tutte le relative sottocartelle sono inoltre inclusi o esclusi.
  1. Fare doppio clic su TestCatalog (il catalogo è creato nella sezione "Creare una cartella di test").
  2. Fare clic con il pulsante destro del mouse Directory , scegliere Nuovo e quindi fare clic su Directory .
  3. Fare clic su Sfoglia , individuare e selezionare la cartella che si desidera aggiungere ( C:\myCatalogFolder\ ) e quindi fare clic su OK .

    Nota Nella casella di gruppo include nell'indice? , fare clic su .

Creare un'applicazione Web ASP.NET

  1. Avviare Microsoft Visual Studio .NET.
  2. Utilizzare Visual C# .NET per creare un nuovo ASP.NET Web Application progetto. Denominare il progetto IndexQueryApp . Per impostazione predefinita, viene creato WebForm1.aspx.
  3. In visualizzazione struttura, fare clic con il pulsante destro del mouse su WebForm1 e quindi fare clic su Visualizzazione 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. In Esplora soluzioni, fare clic con il pulsante destro del mouse su WebForm1 e quindi scegliere Visualizza codice . Sostituire il codice esistente con il codice di esempio riportato di seguito:
    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. Scegliere dal menu Genera , Genera soluzione .

Eseguire l'applicazione

  1. Dal menu debug , scegliere Avvia per eseguire l'applicazione.
  2. La query di tipo documento di word nella casella di testo. (È possibile digitare qualsiasi parola dal file IndexText.txt ).
  3. Fare clic sul pulsante . Si noti che la griglia dei dati viene visualizzato e che contenga i risultati di query del IndexText.txt file.

Risoluzione dei problemi

Attendere che l'indice da generare

Il servizio di indicizzazione automaticamente elabora il TestCatalog e consente di preparare un elenco di parole per indicizzazione. Quando si esegue il codice di esempio, potresti non ricevere i risultati più rapidamente come previsto perché il servizio di indicizzazione richiede tempo per creare l'indice.

Per verificare lo stato dell'indice, selezionare snap-in MMC Gestione Computer di avviare il Servizio di indicizzazione nel riquadro di destra, quindi verificare che il valore di Elenco di parole per TestCatalog è maggiore di zero. Se il Word elenco valore è zero, attendere per l'indice creare l'elenco.

Dati di indice potrebbero essere danneggiati

Se la ricerca non restituisce i risultati della ricerca previsto quando si esegue l'indice di una query, i dati dell'indice potrebbero essere danneggiati. Per risolvere il problema, arrestare e quindi riavviare Servizio di indicizzazione per indicizzare nuovamente tutti i documenti. Per effettuare questa operazione, attenersi alla seguente procedura:
  1. Fare clic su Start , scegliere Impostazioni e quindi fare clic su Pannello di controllo .
  2. Fare doppio clic su Strumenti di amministrazione e quindi fare doppio clic su Gestione Computer .
  3. Nella struttura della console, fare doppio clic su servizi e applicazioni .
  4. Fare clic con il pulsante destro del mouse sul Servizio di indicizzazione e quindi fare clic su Interrompi .
  5. Fare nuovamente clic con il pulsante destro del mouse sul Servizio di indicizzazione e quindi fare clic su Start .

Riferimenti

Per ulteriori informazioni sul servizio di indicizzazione, visitare il sito di Web di Microsoft:
http://msdn2.microsoft.com/en-us/library/ms689644.aspx
Per ulteriori informazioni, fare clic sui numeri degli articoli della Microsoft Knowledge Base riportato di seguito:
311521L'indice di contenuto ASP.NET utilizzando Microsoft Index Server
Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
308202Come creare e configurare un catalogo per l'indicizzazione


Proprietà

Identificativo articolo: 820983 - Ultima modifica: venerdì 12 gennaio 2007 - Revisione: 3.4
Le informazioni in questo articolo si applicano a:
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Windows Indexing Service 2.0
Chiavi: 
kbmt kbquery kbservice kbdatabinding kbdataadapter kbwebserver kbwebforms kbhowtomaster KB820983 KbMtit
Traduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 820983
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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