搜索连接器框架疑难解答

了解使用 Microsoft SharePoint Server 2010 搜索连接器框架时可能遇到的问题的疑难解答信息。

上次修改时间: 2015年3月9日

适用范围: SharePoint Server 2010

在我们获得新的疑难解答信息时会更新本主题。

解决搜索连接器框架问题

下表标识了使用 SharePoint Server 搜索连接器框架时可能遇到的症状和问题,并提供解决方案。

表 1. 搜索连接器症状、问题和解决方案

症状

问题

解决方案

您遇到爬网日志中的以下错误:访问已被业务数据连接拒绝

这可能是因模型和外部内容类型上的权限集不正确导致的。

如果模型将 PassThrough 指定为身份验证模型,则默认内容访问帐户必须在应进行爬网的模型文件和所有外部内容类型上具有 Execute 权限。如果对内容源使用某爬网规则,则在该爬网规则中指定的用户应在 Business Data Connectivity (BDC) Service 模型文件和所有外部内容类型上具有 Execute 权限。

如果模型将 RevertToSelf 指定为身份验证模型,则 Search Service 应用程序池帐户用于连接到 Business Data Connectivity (BDC) Service,而且该帐户在 BDC 模型文件和所有外部内容类型上应具有 Execute 权限。

爬网日志显示爬网成功完成,两个成功,没有错误。

Business Data Connectivity (BDC) Service 模型文件不包含 SharePoint Server 搜索用来枚举内容的 RootFinder 属性。

将 RootFinder 属性添加到查找器 methodInstance,如下面的示例所示。

<MethodInstance Name="GetRootFolders_Instance" Type="Finder" ReturnParameterName="Return" ReturnTypeDescriptorName="Return" ReturnTypeDescriptorLevel="0">
    <Properties>
        <Property Name="RootFinder" Type="System.String">Empty</Property>
    </Properties>
</MethodInstance>

新建外部数据源时,BDC 模型会导入但不会显示在外部数据源列表中。

BDC 模型缺少 ShowInSearchUI 属性

在 LobSystemInstance 级别添加 ShowInSearchUI 属性,如下面的示例所示。

<LobSystemInstances>
    <LobSystemInstance Name="TestSystem">
        <Properties>
            <Property Name="ShowInSearchUI" Type="System.String">x</Property>
        </Properties>
    </LobSystemInstance>
</LobSystemInstances>

在使用 Microsoft SharePoint Designer 2010 更改 BDC 模型时,更改似乎没有生效。

旧的外部内容类型未删除。

如果在进行爬网时或访问虚拟列表时删除了 BDC 模型,则可能不会删除外部内容类型。停止对需要修改的外部内容类型的爬网,然后删除该模型。

备注

如果更改 BDC 模型,则必须删除并重新创建外部系统的内容源。

您在爬网日志中看到一个错误,指示数据库响应受到限制或类似错误。

默认情况下,SharePoint Server 搜索从外部系统进行爬网的项数不会超过 25,000 个。

BDC 限制可从外部系统返回的项数。您可以使用以下 Windows PowerShell cmdlet 禁用对包含的项数超过默认限制的外部系统的限制:

$proxy=Get-SPServiceApplicationProxy | 
where {$_.TypeName -match "Business Data Connectivity Service Application Proxy"} #"Business Data Connectivity Proxy"}  
$throttleItems=Get-SPBusinessDataCatalogThrottleConfig -Scope DataBase -ThrottleType Items -ServiceApplicationProxy $proxy
Set-SPBusinessDataCatalogThrottleConfig –Enforced:$false -Identity $throttleItems
$throttleItems=Get-SPBusinessDataCatalogThrottleConfig -Scope DataBase -ThrottleType Items -ServiceApplicationProxy $proxy
$throttleItems
$throttleconnections=Get-SPBusinessDataCatalogThrottleConfig -Scope Global -ThrottleType Connections -ServiceApplicationProxy $proxy
Set-SPBusinessDataCatalogThrottleConfig –Enforced:$false -Identity $throttleconnections
$throttleconnections=Get-SPBusinessDataCatalogThrottleConfig -Scope Global -ThrottleType Connections -ServiceApplicationProxy $proxy
$throttleconnections
iisreset

搜索结果链接不指向新的配置文件页。

若要选取配置文件页的更改(如新配置文件页或 URL 的更改),需要进行完全爬网。

对配置文件页已更改的所有外部内容类型启动完全爬网。

爬网成功,爬网日志指示已对所有项进行了爬网,但基于项的元数据的搜索未返回任何结果。

在 IdEnumerator 方法实例上设置 UseClientCachingForSearch 属性,或者在仅返回标识符的 Finder 方法实例上设置 UseClientCachingForSearch 属性。

使用 UseClientCachingForSearch 属性时,SharePoint Server 搜索缓存 Finder 方法返回的元数据,但不调用 SpecificFinder 方法。对于每一项,仅对此缓存编制索引。对于 IdEnumerator 构造型或仅返回标识符的 Finder,删除 UseClientCachingForSearch 属性。