Integrating the BCS with Search in SharePoint 2013

46
1 Integrating the BCS with Search in SharePoint 2013 Andy Boyet, CISSP SharePoint Architect @ Sparkhound [email protected] Twitter: @andrewboyet LinkedIn: https://www.linkedin.com/in/andyboyet

description

 

Transcript of Integrating the BCS with Search in SharePoint 2013

Page 1: Integrating the BCS with Search in SharePoint 2013

1

Integrating the BCS with Search in SharePoint 2013

Andy Boyet, CISSPSharePoint Architect @ Sparkhound

[email protected]: @andrewboyet

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

Page 2: Integrating the BCS with Search in SharePoint 2013

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

Page 3: Integrating the BCS with Search in SharePoint 2013

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

Page 4: Integrating the BCS with Search in SharePoint 2013

4

BCS Feature Set

Page 5: Integrating the BCS with Search in SharePoint 2013

5

Components

Page 6: Integrating the BCS with Search in SharePoint 2013

6

ToolsSharePoint Designer: adds to the BCS Store

Visual Studio: Deploy wsp and activate farm feature

Page 7: Integrating the BCS with Search in SharePoint 2013

7

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

Event Link Task

Page 8: Integrating the BCS with Search in SharePoint 2013

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

Page 9: Integrating the BCS with Search in SharePoint 2013

9

ECTs in SharePoint Designer

Page 10: Integrating the BCS with Search in SharePoint 2013

10

ECTs in SharePoint Designer

Page 11: Integrating the BCS with Search in SharePoint 2013

11

Visual Studio BDC Explorer

Page 12: Integrating the BCS with Search in SharePoint 2013

12

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

Page 13: Integrating the BCS with Search in SharePoint 2013

13

Presentation Features• External List• External Data Column

Page 14: Integrating the BCS with Search in SharePoint 2013

14

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

• CSOM APIs• Server OM– .Net

• Remote Event Receivers– New in 2013

Page 15: Integrating the BCS with Search in SharePoint 2013

15

Connector Framework• ODATA • WCF• SQL• .NET

Page 16: Integrating the BCS with Search in SharePoint 2013

16

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

Page 17: Integrating the BCS with Search in SharePoint 2013

17

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

Page 18: Integrating the BCS with Search in SharePoint 2013

18

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

• Connector

Page 19: Integrating the BCS with Search in SharePoint 2013

19

ShowInSearchUISet on a LobSystemInstance element

Page 20: Integrating the BCS with Search in SharePoint 2013

20

Search UI

Page 21: Integrating the BCS with Search in SharePoint 2013

21

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

Page 22: Integrating the BCS with Search in SharePoint 2013

22

Incremental Crawl• ChangedIdEnumerator Method• DeletedIdEnumerator Method• LastModifiedTimeStamp

Page 23: Integrating the BCS with Search in SharePoint 2013

23

Caution• Version numbers must be incremented to pick up

changes

Page 24: Integrating the BCS with Search in SharePoint 2013

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.

Page 25: Integrating the BCS with Search in SharePoint 2013

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.

Page 26: Integrating the BCS with Search in SharePoint 2013

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>

Page 27: Integrating the BCS with Search in SharePoint 2013

27

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

display in search results.

Page 28: Integrating the BCS with Search in SharePoint 2013

28

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

value by using the LCIDField property or the CultureField property.

Page 29: Integrating the BCS with Search in SharePoint 2013

29

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

the items to crawl.

Page 30: Integrating the BCS with Search in SharePoint 2013

30

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

Required for hierarchical crawling.

Page 31: Integrating the BCS with Search in SharePoint 2013

31

DeletedCountFieldFound in Method Elements• Specifies the deleted count value.

Page 32: Integrating the BCS with Search in SharePoint 2013

32

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

item• GetSecurityDescriptor method

Page 33: Integrating the BCS with Search in SharePoint 2013

33

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

results.

Page 34: Integrating the BCS with Search in SharePoint 2013

34

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

Page 35: Integrating the BCS with Search in SharePoint 2013

35

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

in search results. • Used for incremental crawling.

Page 36: Integrating the BCS with Search in SharePoint 2013

36

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

results.

Page 37: Integrating the BCS with Search in SharePoint 2013

37

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

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

Page 38: Integrating the BCS with Search in SharePoint 2013

38

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

Page 39: Integrating the BCS with Search in SharePoint 2013

39

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

stream. • Default extension is .txt.

Page 40: Integrating the BCS with Search in SharePoint 2013

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

Page 41: Integrating the BCS with Search in SharePoint 2013

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>

Page 42: Integrating the BCS with Search in SharePoint 2013

42

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

during enumeration.

Page 43: Integrating the BCS with Search in SharePoint 2013

43

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

IDEnumerator.

Page 44: Integrating the BCS with Search in SharePoint 2013

44

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

Page 45: Integrating the BCS with Search in SharePoint 2013

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

Page 46: Integrating the BCS with Search in SharePoint 2013

46

Thanks to all our Sponsors!