- Adding a protocol used by SharePoint to call into the indexing connector
- Registering the indexing connector with SharePoint
Register the indexing connector with SharePoint
The cmdlet used to register the connector is New-SPEnterpriseSearchCrawlCustomConnector which takes our previously registered protocol as parameter as well as the path to the BDC model file. The model file describes the structure of the external system's data. It also contains information about where to find our indexing connector. The connector will be used to handle URLs starting with the given protocol.Function RegisterCustomConnector { param ([Microsoft.Office.Server.Search.Administration.SearchServiceApplication] $ssa, [string] $protocol, [string] $displayName, [string] $modelFilePath) Write-Host "Registering custom connector: $displayName" $connector = New-SPEnterpriseSearchCrawlCustomConnector -SearchApplication $ssa -protocol $protocol -ModelFilePath $modelFilePath -Name $displayName if ($connector) { Write-Host -f Green "Successfully registered custom connector: $displayName" } else { throw "Registering custom connector failed: $displayName" } } $ssa = Get-SPEnterpriseSearchServiceApplication RegisterCustomConnector -ssa $ssa -protocol "protocol1" -displayName "Connector" -modelFilePath "MyBDC.xml"The documentation states that the protocol must have the format "protocol1://", but using just "protocol1" (without "colon dash dash") works just fine.
Example of a BDC model file where you can see the assembly and classes specified:
<Model name="MyModel" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/windows/2007/BusinessDataCatalog"> <LobSystems> <LobSystem name="ContosoSystem" type="Custom"> <Properties> <Property name="SystemUtilityTypeName" type="System.String">ConnectorNamespace.ContosoSystemUtility, ConnectorAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0000000000000000</Property> <Property name="InputUriProcessor" type="System.String">ConnectorNamespace.ContosoLobUri, ConnectorAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0000000000000000</Property> <Property name="OutputUriProcessor" type="System.String">ConnectorNamespace.ContosoNamingContainer, ConnectorAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0000000000000000</Property> </Properties> <!-- More content here --> </LobSystem> <!-- and here --> </LobSystems> <!-- and here --> </Model>The assembly here is "ConnectorAssembly" which you have to deploy to the Global Assembly Cache (GAC).
(More about attributes used in the BDC model file can be found in the MSDN: "Search Properties for BDC model files".)
No comments:
Post a Comment