RootFinder属性与BCS搜索
在使用SharePoint 2007里的BDC(Business Data Catalog) 时,我们可以将我们的实体作为SharePoint爬网的对象并在搜索结果中返回数据,这一切相对比较简单。只要在我们的实体中实现了SpecificFinder与IDEnumerator方法即可。而在SharePoint 2010 BCS(Business Connectivity Services)里,完成这个目标有若干条途径:
- Finder, SpecificFinder 和RootFinder属性
- SpecificFinder和IDEnumerator
Business Data Catelog如何索引数据
正如我们说过的,SharePoint索引通过SpecificFinder和IDEnumerator方法来爬网BDC数据。其中,IDEnumerator是第一个被执行的方法,其作用很简单,就是返回SharePoint需要进行爬网的数据的标示符的值。如果我们的实体还有一个字段用于代表该行数据最后修改时间,那么你还可以在IDEnumerator里返回这个字段,并设置属性_BdcLastModifiedTimestamp。用于进行增量爬网。
RootFinder属性
当我们在SharePoint 2010的Business Connectivity Services下工作时,RootFinder属性允许你得到一个可供搜索的外部内容类型,而不需要实现IDEnumerator方法。如果你看一下SharePoint Desinger 2010里的创建方法菜单就会发现,其中根本就没有创建IDEnumerator方法的菜单项。
然而,当我们用SharePoint Designer 2010创建了一个外部内容类型时,在设置爬网对应的内容源时就可以选择该ECT 对其进行爬网,使其可以显示在搜索结果中。如果你从SharePoint Designer 2010里导出该BCS模型,就可以看到这是为什么了。让我们一步步的操作:
1、当连接到你的SharePoint站点或,在SharePoint Designer 2010里点击外部内容类型视图
2、右击一个外部内容类型并在上下文菜单中选择“导出BDC模型”
3、为该模型指定一个名称,然后选择一个文件存放位置进行保存。
打开生成的XML文件,找到对应的“读取列表”方法,并定位到其中的MethodInstance元素
<MethodInstance Type="Finder" ReturnParameterName="所有产品信息" Default="true" Name="所有产品信息">
<Properties>
<Property Name="RootFinder" Type="System.String"></Property>
<Property Name="UseClientCachingForSearch" Type="System.String"></Property>
</Properties>
<AccessControlList>
.........
</AccessControlList>
</MethodInstance>
</MethodInstances>
注意到该方法添加了RootFinder 属性标记。这也就意味着该Finder方法将发挥与IDEnumerator一样的作用。
参考资料
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!