本文是參考MSDN文檔作的示例,SharePoint 2013搜索二進制對象(BLOB),經過外部內容類型的方式將外部數據與SharePoint相關聯,修改BCD模型,使SharePoint可以爬網外部數據中的文件流。數據庫
步驟,首先就是使用SPD建立外部內容類型,併爲外部內容類型添加各類操做;而後,將BCD模型導出,添加方法後從新導入;最後,配置爬網,對外部內容類型進行爬網。測試
一、首先,用Designer 2013打開站點,點擊左上角按鈕,建立外部內容類型;spa
二、輸入外部內容類型的名稱,點擊「單擊此處發現外部數據並定義操做」;設計
三、在外部內容類型的操做設計器中,點擊添加鏈接;3d
四、然後的外部數據源類型選擇SQL Server;日誌
五、再而後填寫SQL Server鏈接的相關屬性,以下圖添加,便可:code
六、以下圖,添加鏈接之後,會顯示數據庫相關表和視圖,下面,咱們建立全部操做;對象
七、以下圖,能夠看到建立、讀取項、更新、刪除、讀取列表等操做,固然,某些狀況,咱們也會一一建立,這裏爲了省事兒,我一塊兒建立;blog
八、能夠看到咱們數據源的元素,咱們所有顯示出來,而且ID是主鍵,點擊下一步;ip
九、進入篩選器參數配置,以下圖,咱們點擊添加篩選器參數,參見步驟10:
十、以下圖,添加篩選器後,選中,點擊右側的「單擊以添加」,彈出「篩選器配置」對話框,選中限制,點擊肯定,然後在右側默認值選中1000;
特:要說明的是,這個限制是防止返回大量數據的,若是限制了1000,數據量超過1000後會報錯,須要修改這個設置;
十一、建立完畢後,點擊完成,查看下圖:能夠看到外部內容類型的操做和字段;
十二、建立完畢後,選中導出BCD模型,以下圖,點擊肯定,選中路徑,保存便可;
1三、使用VS打開導出的BCD模型,方便編輯;
特別:若是你對於BCD模型不是很熟悉,建議先看看文章後面附的MSDN連接,多理解下每一個節點,大體有什麼意思。哪裏是屬性,哪裏是變量聲明,哪裏是方法,這樣對於配置起來,會事半功倍的。
1四、修改導出的BCD模型,添加新的方法,用來爬網BLOB;
1五、修改完成後,進入管理中心,刪除現有的BCD模型,導入咱們修改之後的,以下圖:
1六、進入搜索應用程序,添加內容源,並對內容源進行徹底爬網;
1七、查看爬網日誌;
詳細日誌
1八、測試搜索程序;
總 結
如博客介紹,SharePoint 2013搜索BLOB,若是能夠行程解決方案,對搜索SharePoint系統外數據庫中的文件,會有很大的幫助,本文參考MSDN文檔,若有任何問題,能夠參照附錄的文檔查看。
好了,就這樣吧,好歹搞一搞,就又該睡覺了,還好今天還算有收穫,你們晚安~~
附 一 修改BCD模型添加的方法的Xml
<Method Name="GetData"> <Properties> <Property Name="RdbCommandText" Type="System.String">SELECT FileDate FROM T_BlobDate where ID=@ID</Property> <Property Name="RdbCommandType" Type="System.Data.CommandType, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">Text</Property> </Properties> <Parameters> <Parameter Direction="In" Name="@ID"> <TypeDescriptor TypeName="System.Int32" IdentifierName="ID" Name="ID" /> </Parameter> <Parameter Name="StreamData" Direction="Return"> <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="StreamData"> <TypeDescriptors> <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="StreamData Element"> <TypeDescriptors> <TypeDescriptor TypeName="System.Byte[]" Name="FileDate" /> </TypeDescriptors> </TypeDescriptor> </TypeDescriptors> </TypeDescriptor> </Parameter> </Parameters> <MethodInstances> <MethodInstance Name="FileDate" ReturnParameterName="StreamData" Type="StreamAccessor" ReturnTypeDescriptorPath="StreamData[0].FileDate" Default="true"> <Properties> <Property Name="MimeTypeField" Type="System.String">ContentType</Property> <Property Name="FileNameField" Type="System.String">DisplayName</Property> </Properties> </MethodInstance> </MethodInstances> </Method>
附 二 外部內容類型的數據庫庫結構
附 三 參考連接
如何:基於 SQL Server 表建立外部內容類型
http://msdn.microsoft.com/zh-cn/library/office/ee557243.aspx
如何:在 SharePoint 中建立外部列表
http://msdn.microsoft.com/zh-cn/library/office/ee558778.aspx
如何:在 SharePoint 2013 中對二進制大型對象 (BLOB) 進行爬網
http://msdn.microsoft.com/zh-cn/library/office/gg294168.aspx
XML Snippet: Modeling a StreamAccessor Method
http://msdn.microsoft.com/en-us/library/ff464410.aspx