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 :
|
Texte |
Typedescriptor |
Spécifie le tableau struct utilisé par la recherche pour les pièces jointes. Se compose des éléments suivants :
|
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.