Integrating the BCS with Search in SharePoint 2013

Post on 01-Dec-2014

142 views 4 download

description

 

Transcript of Integrating the BCS with Search in SharePoint 2013

1

Integrating the BCS with Search in SharePoint 2013

Andy Boyet, CISSPSharePoint Architect @ Sparkhound

andy.boyet@Sparkhound.comTwitter: @andrewboyet

LinkedIn: https://www.linkedin.com/in/andyboyet

2

IntroductionGoal: Understand concepts for the BCS and how to integrate it with Search

• What is the BCS• BCS Feature Set• Enhancing the BCS for Search

3

What is the BCS?Feature of SharePoint that facilitates integration with other systems

How?• Introduced in 2007 as Business Data Catalog (BDC)• Data model description• Tooling has improved

4

BCS Feature Set

5

Components

6

ToolsSharePoint Designer: adds to the BCS Store

Visual Studio: Deploy wsp and activate farm feature

7

Content TypeHierarchical reusable collection of columns, workflow, and other settings.Item

Event Link Task

8

External Content TypesLike normal Content Types, only external

Tools for Creating:• SharePoint Designer (.Net, SQL, WCF)• Visual Studio

XML behind the scenes

Defined as Entities

9

ECTs in SharePoint Designer

10

ECTs in SharePoint Designer

11

Visual Studio BDC Explorer

12

App-Scoped ECTs• Introduced in 2013• Isolated from the rest of the farm• Requires Visual Studio• One model/app• Only ODATA sources

13

Presentation Features• External List• External Data Column

14

Extensibility Features• REST APIs– http://<sitecollection>/<site>/_api/

• CSOM APIs• Server OM– .Net

• Remote Event Receivers– New in 2013

15

Connector Framework• ODATA • WCF• SQL• .NET

16

Profile Pages• Similar to List Forms• Can be overridden - DisplayUriField

17

Secure Store Service• Used for Storing Credentials• Accessible through CA and Powershell

18

External Data SearchTwo Parts• BCS Model – Additional properties required for search support

• Connector

19

ShowInSearchUISet on a LobSystemInstance element

20

Search UI

21

BCS Requirements for Search• Finder and Specific Finder Methods• DisplayUri• Permissions for Search Account• BinarySecurityDescriptorAccessor• StreamAccessor

22

Incremental Crawl• ChangedIdEnumerator Method• DeletedIdEnumerator Method• LastModifiedTimeStamp

23

Caution• Version numbers must be incremented to pick up

changes

24

InputUriProcessor• Specifies the name of the class that processes the

input URL before passing it to the connector. Applies to .NET and custom BCS indexing connectors.

25

OutputUriProcessor• Specifies the name of the class that processes the

output URL before passing it to the search system from the connector. Applies to .NET and custom BCS indexing connectors.

26

SystemUtilityTypeNameSpecifies the name of the class that implements the StructuredRepositorySystemUtility class. Applies to custom BCS indexing connectors.

<LobSystems> <LobSystem Name="MyFileSystem" Type="Custom"> <Properties> <Property Name="SystemUtilityTypeName" Type="System.String">MyFileConnector.MyFileConnector, MyFileConnector, Version=1.0.0.0, Culture=neutral, PublicKeyToken=15865f58b9878bf8</Property></Properties><Entities>

27

TitleFound in Entity Elements• Specifies the title of the external content type to

display in search results.

28

DefaultLocaleFound in Entity Elements• Specifies the locale string. You can override this

value by using the LCIDField property or the CultureField property.

29

RootFinderFound in Method Elements• Specifies the Finder method to use to enumerate

the items to crawl.

30

DirectoryLinkFound in Association Elements• Specifies that BCS should navigate associations.

Required for hierarchical crawling.

31

DeletedCountFieldFound in Method Elements• Specifies the deleted count value.

32

WindowsSecurityDescriptorFieldFound in Method Elements• Specifies the Windows Security descriptor for the

item• GetSecurityDescriptor method

33

AuthorFieldFound in Method Elements• Specifies the author name to display in search

results.

34

DisplayUriFieldFound in Method Elements• Specifies the URL to display in search results• Overrides the Profile Page• May require a restart of search service

35

LastModifiedTimeStampFieldFound in Method Elements• Specifies the external item's timestamp to display

in search results. • Used for incremental crawling.

36

DescriptionFieldFound in Method Elements• Specifies the description to display in search

results.

37

LCIDFieldFound in Method Elements• Specifies the locale ID (LCID) for the

DescriptionField. If this is not specified, the default word breaker is used.

38

CultureFieldFound in Method Elements• Specifies the culture for the DescriptionField.

39

ExtensionFound in Method Elements• Specifies the file name extension for the crawlable

stream. • Default extension is .txt.

40

MimeTypeFound in Method Elements• Specifies the MIME type for the crawlable stream.

If not specified, the default extension is .txt. • Takes precedence over the Extension Property

41

MimeType Example<MethodInstance Name="LargeResumeAccessor" Type="StreamAccessor" ReturnParameterName="StreamData" ReturnTypeDescriptorName="ResumeLarge"> <Properties> <Property Name="MimeType" Type="System.String">application/vnd.openxmlformats-officedocument.wordprocessingml.document</Property> <Property Name="FileName" Type="System.String">Resume Large.docx</Property> <Property Name="MimeTypeField" Type="System.String">ResumeLargeMIME</Property> <Property Name="FileNameField" Type="System.String">ResumeLargeName</Property> <Property Name="MaxFileSizeInKB" Type="System.Int32">120</Property> </Properties></MethodInstance>

42

UseClientCachingForSearch Found in Method Elements• Specifies whether the crawler caches the content

during enumeration.

43

EnumerateIdsOnlyFound in FilterDescriptor Elements• Specifies whether to return IDs only in the

IDEnumerator.

44

CrawlStartTimeFound in FilterDescriptor Elements• Contains the start time of the last crawl.

45

Configure SearchConfigure Search Service App$searchapp = Get-SPEnterpriseSearchServiceApplication

New-SPEnterpriseSearchCrawlCustomConnector -SearchApplication $searchapp -protocol myfile -ModelFilePath "\\ServerName\FolderName\MyFileModel.xml" -Name myfile

Registry Key[HKEY_LOCAL_MACHINE]\ SOFTWARE\Microsoft\Office Server\15.0\Search\Setup\ProtocolHandlers\myfile

46

Thanks to all our Sponsors!