Partager via


Amélioration du fichier de modèle BDC pour la recherche dans SharePoint

Découvrez les propriétés du modèle de métadonnées BDC qui s’appliquent aux connecteurs d’indexation BCS qui permettent à La recherche dans SharePoint d’analyser des données externes.

Propriétés de recherche pour les fichiers de modèle BDC

L'infrastructure du connecteur dans Search vous permet d'analyse des données externes, ce qui rend disponible dans les résultats de la recherche par le biais de connecteurs d'indexation BCS. Le connecteur d'indexation BCS est utilisé par l'analyseur pour communiquer avec la source de données externe. Au moment de l'analyse, le robot appelle le connecteur d'indexation BCS pour extraire les données du système externe et transmettez-le à l'analyseur.

Indexation des connecteurs BCS sont composés des éléments suivants :

Fichier de modèle BDC Le fichier qui fournit les informations de connexion au système externe et la structure des données.

Connecteur Le composant qui contient le code qui se connecte au système externe et analyse de l'accès aux identificateurs d'URL et BCS.

Le modèle de métadonnées BDC inclut plusieurs propriétés qui sont applique aux Search, dont la plupart sont requis pour prendre en charge le connecteur d'indexation BCS l'analyse.

Le tableau suivant décrit les propriétés de modèle BDC qui s'applique à Search.

Tableau 1. Propriétés de recherche pour les fichiers de modèle BDC

Nom Objet de métadonnées Description
ShowInSearchUI
Model
Indique qu'un élément LobSystemInstance dans le fichier de modèle doit être affiché dans l'interface utilisateur de recherche. Cette valeur est ignorée pour les connecteurs personnalisés.
InputUriProcessor
Lobsystem
Specifies the name of the class that processes the input URL before passing it to the connector. Applies to .NET and custom BCS indexing connectors. For more information, see Création d'un connecteur d'indexation personnalisé.
OutputUriProcessor
Lobsystem
Specifies the name of the class that processes the output URL before passing it to the search system from the connector. Applies to .NET and custom BCS indexing connectors. For more information, see Création d'un connecteur d'indexation personnalisé.
SystemUtilityTypeName
Lobsystem
Specifies the name of the class that implements the StructuredRepositorySystemUtility class. Applies to custom BCS indexing connectors. For more information, see Création d'un connecteur d'indexation personnalisé.
Titre
Entity
Spécifie le titre du type de contenu externe à afficher dans les résultats de recherche.
DefaultLocale
Entity
Spécifie la chaîne de paramètres régionaux. Vous pouvez remplacer cette valeur à l'aide de la propriété LCIDField ou CultureField.
RootFinder
Method
Spécifie la méthode Finder à utiliser pour énumérer les éléments à analyser. Par exemple, lors de la connexion à une base de données, il pourrait s'agir de l'instruction SELECT ou de la liste de tableaux à analyser.
DirectoryLink
Method
Spécifie que BCS doit accéder associations. Requis pour l'analyse hiérarchique.
DeletedCountField
Method
Spécifie la valeur de nombre supprimée. Cette propriété est ignorée, à moins qu'elle contienne un entier supérieur à zéro.
WindowsSecurityDescriptorField
Method
Spécifie le descripteur de sécurité Windows pour l'élément. Si aucun descripteur n'est spécifié, la méthode GetSecurityDescriptor est appelée. Si GetSecurityDescriptor n'est pas définie, la liste de contrôle d'accès Tout le monde est assignée à tous les éléments externes.
AuthorField
Method
Spécifie le nom de l'auteur à afficher dans les résultats de recherche.
DisplayUriField
Method
Spécifie l'URL à afficher dans les résultats de recherche. Si spécifié, cette propriété substitue à l'URL de page de profil fournie par BCS. Le cas contraire, l'URL affichée dans les résultats de recherche commence par bdc3: / / et n'est pas comprise par le navigateur.
LastModifiedTimeStampField
Method
Spécifie l'horodatage de l'élément externe à afficher dans les résultats de recherche. Cette valeur est également utilisée pour l'analyse incrémentielle.
Champ de description
Method
Spécifie la description afficher dans les résultats de recherche.
LCIDField
Method
Spécifie l'ID de paramètres régionaux (LCID) pour DescriptionField. Si aucun LCID n'est spécifié ici, l'analyseur lexical par défaut est utilisé.
Champ de culture
Method
Spécifie la culture pour DescriptionField.
Extension
Method
Spécifie l'extension de nom de fichier pour le flux analysable. Si aucune extension n'est spécifiée, l'extension par défaut est .txt.
Mimetype
Method
Spécifie le type MIME pour le flux analysable. Si aucune extension n'est spécifiée, l'extension par défaut est .txt. Si les champs Extension et MimeType sont tous deux spécifiés, la valeur spécifiée dans le champ MimeType est utilisée.
UseClientCachingForSearch
Method
Spécifie si le robot met en cache le contenu lors de l'énumération. Si le contenu est mis en cache, le robot ne font pas de déplacement d'une autre vers la source de contenu pendant l'analyse des éléments individuels.
EnumerateIdsOnly
FilterDescriptor
Indique s'il faut renvoyer des ID uniquement dans l' IDEnumerator.
CrawlStartTime
FilterDescriptor
Contient l'heure de début de la dernière analyse.
SynchronizationCookie
FilterDescriptor
Indique que la source de contenu externe renvoie un cookie après une analyse, qui est ensuite réinitialisé par le connecteur d'indexation durant l'appel d'énumération suivant. La source de contenu externe utilise le cookie pour déterminer ce qui a changé depuis la dernière analyse. Cette propriété est utilisée avec des instances de méthodes ChangedIDEnumerator et DeletedIDEnumerator.
Property
Typedescriptor
Spécifie le tableau struct utilisé par la recherche de propriétés. Se compose des éléments suivants :
  • PropertyName
  • Propertyvalue
  • PropertyCulture
Texte
Typedescriptor
Spécifie le tableau struct utilisé par la recherche pour les pièces jointes. Se compose des éléments suivants :
  • TextExtension
  • TextContentType
  • TextValue

Modifications du fichier de modèle BDC pour améliorer les performances lors de l'analyse des données externes

Lorsque vous souhaitez créer un fichier de modèle BDC pour un système externe que vous souhaitez activer pour la recherche, vous pouvez améliorer le fichier de modèle pour optimiser les performances lors de l'analyse de systèmes externes. Cette section décrit les méthodes pour modifier le fichier de modèle BDC pour améliorer les performances.

Utiliser des E/S de propriétés inline lors de l'extraction de données à grande échelle

En règle générale, si certaines des données renvoyées pour un élément sont à grande échelle, au lieu de les renvoyer avec la méthode SpecificFinder, vous devez utiliser l'une des méthodes spécialisées suivantes pour extraire les données :

  • Utilisez la méthode BinarySecurityDescriptorAccessor lorsque vous passez une liste de contrôle d'accès de sécurité plutôt qu'une propriété WindowsSecurityDescriptor.

  • Utilisez la propriété StreamAccessor lorsque vous passez des flux.

À moins que la latence du réseau ne soit élevée, le gain de performances est généralement supérieur au coût d'un trajet supplémentaire jusqu'au système externe.

Optimisation de l'énumération lors de l'analyse de systèmes externes

N'énumérez pas plus de 100 000 éléments par appel au système externe. Les énumérations de longue durée peuvent provoquer des interruptions intermittentes et empêcher l'achèvement d'une analyse. Il est conseillé que votre modèle BDC structure les données en dossiers logiques pouvant être énumérés individuellement, comme indiqué dans l'exemple suivant.

Cet exemple illustre l'énumération contre une table de base de données avec un million de lignes, mais avec un ensemble fixe de valeurs dans ColumnA. Dans ce scénario, vous pouvez considérer ColumnA comme le type de contenu externe et écrire un énumérateur pour cet ensemble de valeurs à l'aide de l'instruction SQL suivante.


SELECT DISTINCT( ISNULL(ColumnA,'unknown')) as ColumnA  FROM table

Ensuite, définissez le finder spécifique à l'aide de l'instruction SQL suivante.

SELECT DISTINCT( ISNULL(ColumnA,'unknown')) as ColumnA  FROM table where ColumnA = @Value

Pour finir, vous devez définir l'opération de navigation d'association comme suit.

Select * from table where ColumnA=@value

Toute méthode doit commencer à renvoyer des résultats dans les deux minutes, sinon le robot annule l'appel. Par exemple, l'exécution d'une instruction SQL complexe qui utilise une clause LIKE peut prendre plus de deux minutes et par conséquent provoquer l'annulation de l'appel par le robot.

Amélioration de la vitesse d'analyse avec la propriété UseClientCachingForSearch

La propriété UseClientCachingForSearch améliore la vitesse des analyses complètes en mettant en cache l'élément durant l'énumération. L'utilisation de cette propriété est également recommandée lors de l'implémentation d'analyses incrémentielles basées sur des journaux des modifications, car elle améliore la vitesse des analyses incrémentielles.

Important: Si les éléments sont supérieurs à 30 kilo-octets en moyenne, ne définissez pas cette propriété, car elle entraînera un nombre important d’absences de cache et niera les gains de performances.

Sécurité dans les fichiers de modèle BDC

Si le référentiel utilise l'authentification NTLM, nous vous recommandons de spécifier l'authentification directe (PassThrough) pour l'analyse.

Les pages de profils peuvent nécessiter l'utilisation du Service Banque d'informations sécurisée à cause du problème de délégation multi-saut du serveur Web frontal. Si vous rencontrez ce problème, vous pouvez optimiser l'analyse tout en autorisant les pages de profils en créant deux instances LobSystemInstance similaires. La première instance doit utiliser des informations d'identification de l'authentification du Service Banque d'informations sécurisée. Cette instance ne doit pas contenir la propriété ShowInSearchUI. La seconde instance doit utiliser l'authentification directe et doit contenir la propriété ShowInSearchUI. Les pages de profils utilisent la première instance LobSystemInstance et le robot utilise la seconde instance.

Remarque

[!REMARQUE] Cela impose de définir la propriété ShowInSearchUI au niveau LobSystemInstance plutôt qu'au niveau LobSystem.

Voir aussi