Freigeben über


Optimieren der BDC-Modelldatei für die Suche in SharePoint

Informationen Sie zu den Eigenschaften im BDC-Metadatenmodell, die die BCS-indizierungskonnektoren betreffen die Suche in SharePoint zum Durchforsten der externer Daten zu ermöglichen.

Sucheigenschaften für BDC-Modelldateien

Das konnektorframework in Suche können Sie zum Durchforsten der externer Daten, die in den Suchergebnissen über BCS-indizierungskonnektoren verfügbar zu machen. BCS-Indizierungsconnector wird vom Crawler verwendet, mit der externen Datenquelle kommunizieren. Bei der Durchforstung ruft der Crawler den BCS-Indizierungsconnector zum Abrufen der Daten aus dem externen System, und geben Sie ihn an dem Crawler.

BCS-Indizierungsconnectors bestehen aus Folgendem:

BDC-Modelldatei Die Datei, die Verbindungsinformationen für das externe System und die Struktur der Daten bereitstellt.

Connector Die Komponente mit dem Code, der eine Verbindung mit dem externen System und analysiert das Access-URLs und BCS-IDs.

Das BDC-Metadatenmodell enthält verschiedene Eigenschaften, die gelten für Suche, von die viele zur Unterstützung von BCS-Indizierungsconnector Durchforstung erforderlich sind.

In der folgenden Tabelle wird beschrieben, die BDC-Modell-Eigenschaften, die auf Suche angewendet werden.

Tabelle 1. Sucheigenschaften für BDC-Modelldateien

Name Metadatenobjekt Beschreibung
ShowInSearchUI
Model
Gibt an, dass ein LobSystemInstance-Element in der Modelldatei in der Benutzeroberfläche des Suchdiensts angezeigt werden soll. Dieser Wert wird für benutzerdefinierte Konnektoren ignoriert.
InputUriProcessor
LobSystem
Gibt den Namen der Klasse, die die eingegebene URL vor der Übergabe an den Connector verarbeitet. Gilt für .NET und benutzerdefinierten BCS Indizierung Connectors. Weitere Informationen finden Sie unter Erstellen eines benutzerdefinierten Indizierungskonnektors.
OutputUriProcessor
LobSystem
Gibt den Namen der Klasse, die die URL für die Ausgabe vor der Übergabe an das Suchsystem aus den Connector verarbeitet. Gilt für .NET und benutzerdefinierten BCS Indizierung Connectors. Weitere Informationen finden Sie unter Erstellen eines benutzerdefinierten Indizierungskonnektors.
SystemUtilityTypeName
LobSystem
Gibt den Namen der Klasse, die die StructuredRepositorySystemUtility -Klasse implementiert. Gilt für benutzerdefinierte BCS Indizierung Connectors. Weitere Informationen finden Sie unter Erstellen eines benutzerdefinierten Indizierungskonnektors.
Title
Entität
Gibt den Titel des externen Inhaltstyps an, der in Suchergebnissen angezeigt werden soll.
DefaultLocale
Entität
Gibt die Gebietsschema-Zeichenfolge an. Diesen Wert können Sie mit der LCIDField-Eigenschaft oder der CultureField-Eigenschaft überschreiben.
RootFinder
Methode
Gibt die Finder-Methode an, die zum Aufzählen der zu durchforstenden Elemente verwendet werden soll. Beispielsweise könnte dies beim Herstellen einer Verbindung mit einer Datenbank die SELECT-Anweisung oder die Liste der zu durchforstenden Tabellen sein.
DirectoryLink
Methode
Gibt an, dass BCS Zuordnungen navigieren soll. Erforderlich für das hierarchische crawlen.
DeletedCountField
Methode
Gibt den Wert für die Anzahl gelöschter Elemente an. Diese Eigenschaft wird ignoriert, außer sie enthält eine ganze Zahl, die größer als Null ist.
WindowsSecurityDescriptorField
Methode
Gibt die Windows-Sicherheitsbeschreibung für das Element an. Wenn diese Eigenschaft nicht angegeben ist, wird die GetSecurityDescriptor-Methode aufgerufen. Wenn GetSecurityDescriptor nicht definiert ist, werden alle externen Elemente der Zugriffssteuerungsliste (Access Control List, ACL) "Jeder" zugewiesen.
AuthorField
Methode
Gibt den Namen des Autors an, der in Suchergebnissen angezeigt werden soll.
DisplayUriField
Methode
Gibt die URL in den Suchergebnissen angezeigt. Wenn angegeben, überschreibt diese Eigenschaft die URL für die Profile von BCS bereitgestellt. Wenn nicht angegeben wird, beginnt die URL in den Suchergebnissen angezeigt mit bdc3: / /, und wird nicht vom Browser verstanden.
LastModifiedTimeStampField
Methode
Gibt den Zeitstempel des externen Elements an, der in Suchergebnissen angezeigt werden soll. Dieser Wert wird auch für die inkrementelle Durchforstung verwendet.
DescriptionField
Methode
Gibt die Beschreibung an, die in Suchergebnissen angezeigt werden soll.
LCIDField
Methode
Gibt die Gebietsschema-ID (LCID) für DescriptionField an. Wenn diese Eigenschaft nicht angegeben ist, wird die standardmäßige Wörtertrennung verwendet.
CultureField
Methode
Gibt die Kultur für DescriptionField an.
Extension
Methode
Gibt die Dateinamenerweiterung für den Datenstrom an, der durchforstet werden kann. Wenn diese Eigenschaft nicht angegeben ist, lautet die Standarderweiterung .txt.
MimeType
Methode
Gibt den MIME-Typ für den Datenstrom an, der durchforstet werden kann. Wenn diese Eigenschaft nicht angegeben ist, lautet die Standarderweiterung .txt. Wenn die Felder Extension und MimeType beide angegeben sind, wird der im Feld angegebene MimeType Wert verwendet.
UseClientCachingForSearch
Methode
Gibt an, ob der Crawler den Inhalt während Enumeration zwischengespeichert. Wenn der Inhalt zwischengespeichert wird, werden der Crawler keine gestellt einer anderen Reise zur Inhaltsquelle beim Crawlen einzelne Elemente.
EnumerateIdsOnly
FilterDescriptor
Gibt an, ob in IDEnumerator nur IDs zurückgegeben werden sollen.
CrawlStartTime
FilterDescriptor
Enthält die Startzeit der letzten Durchforstung.
SynchronizationCookie
FilterDescriptor
Gibt an, dass die externe Inhaltsquelle nach einer Durchforstung ein Cookie zurückgibt, das anschließend vom Indizierungskonnektor während des nächsten Aufzählungsaufrufs erneut gesendet wird. Die externe Inhaltsquelle nutzt das Cookie, um zu bestimmen, was sich seit der letzten Durchforstung geändert hat. Diese Eigenschaft wird mit Instanzen der Methoden ChangedIDEnumerator und DeletedIDEnumerator verwendet.
Property
TypeDescriptor
Gibt das Strukturarray an, das von der Suche nach Eigenschaften verwendet wird. Dies besteht aus Folgendem:
  • PropertyName
  • PropertyValue
  • PropertyCulture
Text
TypeDescriptor
Gibt das struct-Array an, das von der Suche für Anlagen verwendet wird. Dies besteht aus Folgendem:
  • TextExtension
  • TextContentType
  • TextValue

BDC-Modell Datei Änderungen zum Verbessern der Leistung beim Crawlen von externer Daten

Wenn Sie möchten eine BDC-Modelldatei für ein externes System zu erstellen, die Sie für die Suche aktivieren möchten, können Sie die Modelldatei zum Optimieren der Leistung beim Durchforsten externer Systeme verbessern. In diesem Abschnitt werden Verfahren zum Ändern der BDC-Modelldatei zum Verbessern der Leistung.

Verwenden der eingebetteten Eigenschafts-E/A beim Abrufen großer Datenmengen

Wenn für ein einzelnes Element große Datenmengen zurückgegeben werden, sollten Sie für die Rückgabe generell nicht die SpecificFinder-Methode, sondern eine der folgenden Spezialmethoden zum Abrufen der Daten verwenden:

  • Verwenden Sie die BinarySecurityDescriptorAccessor-Methode, wenn eine Sicherheits-Zugriffssteuerungsliste (Security Access Control List, SACL) anstelle der WindowsSecurityDescriptor-Eigenschaft übergeben wird.

  • Verwenden Sie zum Übergeben von Datenströmen die StreamAccessor-Methode.

Außer bei einer langen Netzwerkwartezeit ist die Leistung meist besser als bei einem zusätzlichen Abrufvorgang des externen Systems.

Aufzählungsoptimierung beim Durchforsten externer Systeme

Zählen Sie pro Aufruf an das externe System nicht mehr als 100.000 Elemente auf. Lang andauernde Aufzählungen können zwischenzeitliche Unterbrechungen verursachen und den Abschluss einer Durchforstung verhindern. Es wird empfohlen, dass Ihr BDC-Modell die Daten in logischen Ordnern strukturiert, die einzeln aufgezählt werden können (siehe das folgende Beispiel).

Dieses Beispiel veranschaulicht das Aufzählen für eine Datenbanktabelle mit einer Million Zeilen, aber mit einer festen Gruppe von Werten in der Spalte "ColumnA". In diesem Szenario können Sie "ColumnA" als den externen Inhaltstyp betrachten und mithilfe der folgenden SQL-Anweisung einen Enumerator für diese Wertegruppe schreiben.


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

Definieren Sie nun mit der folgenden SQL-Anweisung den spezifischen Finder.

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

Schließlich müssen Sie den Zuordnungsnavigationsvorgang wie folgt definieren.

Select * from table where ColumnA=@value

Jede Methode sollte innerhalb von zwei Minuten mit der Rückgabe von Ergebnissen beginnen, andernfalls bricht der Crawler den Aufruf ab. Beispielsweise kann die Ausführung einer komplexen SQL-Anweisung, die eine LIKE-Klausel verwendet, länger als zwei Minuten dauern und dazu führen, dass der Crawler den Aufruf abbricht.

Erhöhen der Durchforstungsgeschwindigkeit mithilfe der "UseClientCachingForSearch"-Eigenschaft

Die UseClientCachingForSearch-Eigenschaft beschleunigt vollständige Durchforstungen, indem das Element während der Aufzählung zwischengespeichert wird. Diese Eigenschaft wird auch empfohlen, wenn inkrementelle auf Änderungsprotokollen basierende Durchforstungen implementiert werden, da dadurch inkrementelle Durchforstungen beschleunigt.

Wichtig: Wenn Elemente durchschnittlich größer als 30 KB sind, legen Sie diese Eigenschaft nicht fest, da sie eine beträchtliche Anzahl von Cachefehlern verursacht und Leistungsvorteile zunichte macht.

Sicherheit in BDC-Modelldateien

Wenn das Repository die NTLM-Authentifizierung verwendet, wird empfohlen, für Durchforstungen die PassThrough-Authentifizierung zu aktivieren.

Profilseiten können erfordern, dass Sie den Dienst für Einmaliges Anmelden aufgrund des Delegierungsproblems bei Mehrfachhops auf dem Front-End-Webserver verwenden müssen. Bei Auftreten dieses Problems können Sie die Durchforstung optimieren und gleichzeitig das Erstellen von Profilseiten zulassen, indem Sie zwei ähnliche LobSystemInstance-Instanzen erstellen. Die erste Instanz muss Anmeldeinformationen aus der Authentifizierung für Einmaliges Anmelden verwenden. Diese Instanz darf nicht die ShowInSearchUI-Eigenschaft enthalten. Die zweite Instanz muss die PassThrough-Authentifizierung verwenden und die ShowInSearchUI-Eigenschaft enthalten. Profilseiten verwenden die erste LobSystemInstance-Instanz, der Crawler die zweite Instanz.

Hinweis

Dies erfordert, dass Sie die ShowInSearchUI-Eigenschaft auf LobSystemInstance-Ebene anstatt auf LobSystem-Ebene festlegen.

Siehe auch