SharePoint 2013 對二進制大型對象(BLOB)進行爬網


  本文是參考MSDN文檔做的示例,SharePoint 2013搜索二進制對象(BLOB),通過外部內容類型的方式將外部數據與SharePoint相關聯,修改BCD模型,使SharePoint能夠爬網外部數據中的文件流。

  步驟,首先就是使用SPD創建外部內容類型,並為外部內容類型添加各種操作;然后,將BCD模型導出,添加方法后重新導入;最后,配置爬網,對外部內容類型進行爬網。

1、首先,用Designer 2013打開站點,點擊左上角按鈕,創建外部內容類型;

clip_image001

2、輸入外部內容類型的名稱,點擊“單擊此處發現外部數據並定義操作”;

clip_image002

3、在外部內容類型的操作設計器中,點擊添加連接;

clip_image003

4、而后的外部數據源類型選擇SQL Server;

clip_image004

5、再然后填寫SQL Server連接的相關屬性,如下圖添加,即可:

clip_image005

6、如下圖,添加連接以后,會顯示數據庫相關表和視圖,下面,我們創建所有操作;

clip_image006

7、如下圖,可以看到創建、讀取項、更新、刪除、讀取列表等操作,當然,某些情況,我們也會一一創建,這里為了省事兒,我一起創建;

clip_image007

8、可以看到我們數據源的元素,我們全部顯示出來,並且ID是主鍵,點擊下一步;

clip_image008

9、進入篩選器參數配置,如下圖,我們點擊添加篩選器參數,參見步驟10:

clip_image009

10、如下圖,添加篩選器后,選中,點擊右側的“單擊以添加”,彈出“篩選器配置”對話框,選中限制,點擊確定,而后在右側默認值選中1000;

clip_image010

  特:要說明的是,這個限制是防止返回大量數據的,如果限制了1000,數據量超過1000后會報錯,需要修改這個設置;

11、創建完畢后,點擊完成,查看下圖:可以看到外部內容類型的操作和字段;

clip_image011

12、創建完畢后,選中導出BCD模型,如下圖,點擊確定,選中路徑,保存即可;

clip_image012

13、使用VS打開導出的BCD模型,方便編輯;

clip_image013

  特別:如果你對於BCD模型不是很熟悉,建議先看看文章后面附的MSDN鏈接,多理解下每個節點,大致有什么意思。哪里是屬性,哪里是變量聲明,哪里是方法,這樣對於配置起來,會事半功倍的。

14、修改導出的BCD模型,添加新的方法,用來爬網BLOB;

clip_image014

15、修改完成后,進入管理中心,刪除現有的BCD模型,導入我們修改以后的,如下圖:

clip_image015

16、進入搜索應用程序,添加內容源,並對內容源進行完全爬網;

clip_image016

17、查看爬網日志;

clip_image017

  詳細日志

clip_image018

18、測試搜索程序;

clip_image019

  如博客介紹,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>

外部內容類型的數據庫庫結構

clip_image020

參考鏈接

如何:基於 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM