Comment utiliser une application ASP.NET pour interroger un service d'indexation catalogue à l'aide de Visual C# .NET

Traductions disponibles Traductions disponibles
Numéro d'article: 820983 - Voir les produits auxquels s'applique cet article
Pour une version de Microsoft Visual Basic .NET de cet article, voir 820105.
Agrandir tout | Réduire tout

Sommaire

Résumé

Cet article étape par étape explique comment créer un catalogue de service d'indexation. Cet article explique également comment utiliser un Web ASP.NET application de catalogues de service d'indexation de requête.

Créer un dossier de test

  1. Créez un nouveau dossier sur le lecteur C de votre ordinateur. Nommez le dossier myCatalogFolder .
  2. Démarrez un éditeur de texte tel que le bloc-notes et puis collez le texte suivant dans un document vide :
    Cela est document test pour tester la requête de serveur d'index et ce nom de fichier est IndexText.text.
  3. Enregistrez le fichier en tant que C:\myCatalogFolder\IndexText.txt .

Créer un catalogue de service d'indexation

  1. Cliquez sur Démarrer , cliquez sur Exécuter , tapez compmgmt.msc et puis cliquez sur OK .
  2. Développez Services et applications .
  3. Cliquez avec le bouton droit sur Service d'indexation , pointez sur Nouveau , puis cliquez sur catalogue .
  4. Dans la zone de texte Nom , tapez TestCatalog .
  5. Cliquez sur Parcourir , localisez le dossier dans lequel vous souhaitez mis le catalogue et puis cliquez sur OK à deux reprises.
  6. Sous nouveau catalogue créé , le message suivant :
    Catalogue restera déconnecté jusqu'à ce que service d'indexation est redémarré
    Cliquez sur OK .
  7. Cliquez avec le bouton droit sur Service d'indexation , puis cliquez sur Arrêter pour arrêter le service d'indexation.
  8. Cliquez avec le bouton droit sur Service d'indexation , puis cliquez sur Démarrer pour redémarrer le service d'indexation.

Définir l'étendue du catalogue

Après avoir créé un nouveau catalogue, ajouter les dossiers que vous souhaitez inclure dans l'étendue du catalogue. L'étendue est l'ensemble des dossiers inclus dans le catalogue et exclu du catalogue. L'étendue définit le contenu qui est inclus dans l'index et exclu de l'index. Pour chaque dossier est inclus ou exclu, tous ses sous-dossiers sont également inclus ou exclus.
  1. Double-cliquez sur TestCatalog (le catalogue vous avez créé dans la section « Créer un dossier de test »).
  2. Cliquez avec le bouton droit sur les répertoires , pointez sur Nouveau et puis cliquez sur le répertoire .
  3. Cliquez sur Parcourir , recherchez, puis cliquez sur le dossier que vous souhaitez ajouter ( C:\myCatalogFolder\ ) et puis cliquez sur OK .

    note Sous inclure dans l'index? , cliquez sur Oui .

Créer une application Web ASP.NET

  1. Démarrez Microsoft Visual Studio .NET.
  2. Visual C# .NET permet de créer un nouveau Web ASP.NET Applications projet. Nommez le projet IndexQueryApp . Par défaut, WebForm1.aspx est créé.
  3. En mode Création, cliquez avec le bouton droit sur WebForm1 , puis cliquez sur Afficher la source 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. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur WebForm1 , puis cliquez sur Afficher le code . Remplacez le code existant par le code exemple suivant :
    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. Dans le menu Générer , cliquez sur Créer solution .

Exécuter l'application

  1. Dans le menu Déboguer , cliquez sur Démarrer pour exécuter l'application.
  2. Tapez le mot de requête document dans la zone de texte. (Vous pouvez taper un mot à partir du fichier IndexText.txt .)
  3. Cliquez sur le bouton . Notez que la grille de données s'affiche et contient les résultats de requête de la IndexText.txt fichier.

Résoudre les problèmes

Attendez que l'index pour être créés

Le service d'indexation traite la TestCatalog automatiquement et prépare une liste de mots pour l'indexation. Lorsque vous exécutez l'exemple de code, vous pouvez recevez pas les résultats aussi rapidement comme prévu, car le service d'indexation nécessite quelques temps pour créer l'index.

Pour vérifier l'état de l'index, démarrez le cliquez po composant logiciel enfichable MMC Gestion de l'ordinateur de Service d'indexation dans le volet droit, puis vérifiez que la valeur de la liste de mots de TestCatalog est supérieure à zéro. Si le Word liste valeur est zéro, attendez que l'index pour créer la liste.

Données index a peut-être été endommagées

Si la recherche ne renvoie pas les résultats de recherche prévu lorsque vous interrogez l'index, les données d'index a peut-être été endommagées. Pour résoudre ce problème, arrêtez et redémarrez service d'indexation pour indexer tous les documents à nouveau. Pour ce faire, procédez comme suit :
  1. Cliquez sur Démarrer , pointez sur Paramètres , puis cliquez sur le Panneau de configuration .
  2. Double-cliquez sur Outils d'administration , puis double-cliquez sur Gestion de l'ordinateur .
  3. Dans l'arborescence de la console, double-cliquez sur Services et applications .
  4. Cliquez avec le bouton droit sur Service d'indexation , puis cliquez sur Arrêter .
  5. Cliquez avec le bouton droit à nouveau sur Service d'indexation , puis cliquez sur Démarrer .

Références

Pour plus d'informations sur le service d'indexation, reportez-vous au site de Web Microsoft suivant :
http://msdn2.microsoft.com/en-us/library/ms689644.aspx
Pour plus d'informations, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft :
311521 Comment faire pour indexer le contenu ASP.NET à l'aide de Microsoft Index Server
Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
308202 Comment créer et configurer un catalogue pour l'indexation


Propriétés

Numéro d'article: 820983 - Dernière mise à jour: vendredi 12 janvier 2007 - Version: 3.4
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
  • Microsoft Visual C# .NET 2003 Initiation
  • Microsoft Visual C# .NET 2002 Initiation
  • Microsoft Windows Indexing Service 2.0
Mots-clés : 
kbmt kbquery kbservice kbdatabinding kbdataadapter kbwebserver kbwebforms kbhowtomaster KB820983 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 820983
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

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