嗨,
我有一个自定义的索引连接器,通过AssociationNavigator方法与实体相关联。为了( SharePoint 2013的)搜索爬网关联实体,我们需要在关联实体中设置'DirectoryLink‘属性或'AttachmentAccessor’属性,如下所述:*http://msdn.microsoft.com/en-us/library/gg294164(v=office.14).aspx
当我设置DirectoryLink属性时,搜索将搜索关联的实体(子实体)和父实体。
但是,当我将子实体设置为作为附件进行爬网时,如果使用AttachmentAccessor属性,爬网程序只会爬行父实体,而忽略相关实体,因此不会对其进行索引。
这是自定义连接器的一些问题吗?就像在 this帖子里一样。如果更改为.net连接器,同样可以正常工作。
我用微软的 sample进行了同样的测试,将文件实体下的DirectoryLink更改为AttachmentAccessor。现在不会对文件进行爬网,爬网程序会在文件夹级停止。
谢谢,
南迪尼
发布于 2013-09-05 16:03:45
经过进一步的挖掘,我终于找到了问题所在。例如,我们以微软的示例( http://code.msdn.microsoft.com/office/SharePoint-2013-MyFileConne-79d2ea26#content )为例。在这里,父实体是文件夹,相关的子实体是文件。文件夹充当包含文件的容器,因此他们在特定文件夹的AssociatedNavigation方法GetAllFiles中使用DirectoryLink方法来爬行文件。但是,如果我将此属性更改为AttachmentAccessor,则在此方法中,搜索将永远不会调用GetAllFiles方法,而只是在爬行文件夹后退出进程。因此,从未索引过的文件。
问题似乎是父实体(文件夹)本身是作为关联(到它自己,设置了'DirectoryLink‘属性)爬行的,其中它获取其中的所有子文件夹,如果我尝试爬行具有'AttachmentAccessor’属性的关联实体(文件),它不能识别我认为的子实体。
在我将父实体(文件夹)更改为IdEnumerator或Finder方法后,可以将关联的实体作为“AttachmentAccessor”进行爬行,这解决了我的问题。
https://stackoverflow.com/questions/17610850
复制相似问题