2013-07-12 30 views
1

搜索在自定義索引連接器與AssociationNavigator

嗨, 

AttachmentAssociator財產我有通過AssociationNavigator方法相關實體的自定義索引連接器。爲了使搜索(SharePoint 2013)抓取關聯的實體,我們需要在相關聯的實體中設置'DirectoryLink'屬性或'AttachmentAccessor'屬性爲 這裏提到:  http://msdn.microsoft.com/en-us/library/gg294164(v=office.14).aspx

當我設置DirectoryLink屬性,搜索將抓取關聯的實體(子實體)和父實體。

但是,當我將子實體設置爲附件時,使用AttachmentAccessor屬性,爬網程序僅抓取父實體,並忽略關聯的實體,因此不會獲取索引。  

這是自定義連接器的問題嗎?像在 this後。  如果更改爲.net連接器,也可以正常工作。

我通過將File實體下的DirectoryLink更改爲AttachmentAccessor,對Microsoft的 sample進行了相同的測試。這些文件現在不會被抓取,而是抓取工具會停留在文件夾級別。

謝謝,

南迪尼


回答

1

多一點挖後,我有點想通了這個問題。例如說,我們採取微軟樣本(http://code.msdn.microsoft.com/office/SharePoint-2013-MyFileConne-79d2ea26#content)。這裏的父實體是文件夾,關聯的子實體是文件。文件夾充當包含文件的容器,因此他們使用DirectoryLink方法來抓取文件,在AssociatedNavigation方法GetAllFiles中爲特定文件夾。但是,如果我將此屬性更改爲AttachmentAccessor,則在此方法中,搜索將永遠不會調用GetAllFiles方法,並且會在抓取文件夾後退出該過程。因此,從未索引的文件。

這個問題似乎是,父實體(文件夾)本身作爲一個關聯進行抓取(本身與'DirectoryLink'屬性集合),它獲取其中的所有子文件夾,如果我嘗試抓取具有'AttachmentAccessor'屬性的關聯實體(文件),它不會識別我認爲的子實體。

當我更改父實體(文件夾)以表示一個IdEnumerator或Finder方法後,關聯的實體可以作爲'AttachmentAccessor'進行爬網,這解決了我的問題。