Survey							
                            
		                
		                * Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Integrating Search Driven
Content in SharePoint 2013
Eric Overfield
SharePoint Advocate and Enthusiast
PixelMill
Introduction – Eric Overfield
 Founder and SharePoint Branding/UI Lead, PixelMill
 Speaker, Teacher, Advocate
 Author, SharePoint Community Organizer
 Located in Davis, CA
Co-author: “Pro SharePoint 2013 Branding and Responsive
Web Development” (Apress – June 12th, 2013)
Order Your Copy
http://pxml.ly/zsqykd
Co-author: “Black Magic Solutions for
White Hat SharePoint” (August, 2013)
ericoverfield.com
@EricOverfield
What You Will Learn
 Aggregate Content Across Sites
cross-site publishing feature
 Create Content Rollup Solutions
custom display templates
 Customize Individual Search Results
result types
 Fine-tune Search Queries
query rules
@EricOverfield - pixelmill.com
Aggregate Content
Across Site(s)
@EricOverfield - pixelmill.com
The Old Way
Site Collection A
Site Collection A
Search
Crawl
Search
Content Query
Web Part (CBQ)
Site Collection B
Site Collection B
Search
Crawl
Search
Content Query
Web Part (CBQ)
@EricOverfield - pixelmill.com
The SharePoint 2013 Way
Site Collection A
Site Collection D
Site Collection B
Search
Crawl
Site Collection C
Search
Content Search
Web Part
@EricOverfield - pixelmill.com
Demo Solution: What We Want to Build…
Scenario:
Show dynamic content
Show potential buyers
a rollup of all the
available Specter Group
properties for sale
@EricOverfield - pixelmill.com
Solution
@EricOverfield - pixelmill.com
Hold On… Important Prerequisites
 Enterprise License Required
For Catalog creation and CBS
 Depends on Search Indexer
 Source site collection feature,
Cross-Site Collection Publishing must be activated
 On-prem only – No O365 support yet
@EricOverfield - pixelmill.com
And Limitations
 Consuming site requires restricted read access on authoring site
 Because results can be security trimmed
 Cross site publishing only supports pages and lists
 Content assets (videos, images, etc.) need to be on assets site
 Use Suggested Content Browser Location
 Results based on search index freshness
@EricOverfield - pixelmill.com
What About Content Deployment?
 Very different approach
 Must be across content databases
 Not based on search
 May be used for similar reasons,
but apples to oranges comparison
@EricOverfield - pixelmill.com
My
Content
Push
Let’s
See
Notifications
a Comparison
 Store it anywhere, across site collections,
web applications or farms
@EricOverfield - pixelmill.com
Create a catalog
@EricOverfield - pixelmill.com
Managed Properties
 Required to surface/retrieve new content columns
 Configured in Central Admin or Site Collection
 Search Schema
 Content has to have been crawled
 Another full crawl after a new managed property
@EricOverfield - pixelmill.com
Creating
Managed
Properties
Push See
Let’s
Notifications
a Comparison
@EricOverfield - pixelmill.com
Getting
Content
from a Catalog
Push See
Let’s
Notifications
a Comparison
@EricOverfield - pixelmill.com
Aggregate
Content
Review
Push See
Let’s
Notifications
a Comparison
Prerequisites have been addressed (licenses and features)
We have source content -> catalog, stored anywhere (almost)
Content has been crawled
Managed properties have been created
Content has been crawled - again
Consuming site has been connected to catalog
Ready to display!
@EricOverfield - pixelmill.com
Content Rollup with the
Content Search Web Part
@EricOverfield - pixelmill.com
The Content Search Web Part (CBS)
@EricOverfield - pixelmill.com
Get
Dynamic
with Query Builder
Push
Let’s
See
Notifications
aContent
Comparison
@EricOverfield - pixelmill.com
Show
Content with Display Templates
PushDynamic
Let’s
See
Notifications
a Comparison
@EricOverfield - pixelmill.com
Customize Your
Display Templates!
@EricOverfield - pixelmill.com
What
a Display Template?
PushMakes
Let’s
See
Notifications
aupComparison
 Control template
 Item Template
 HTML and JS
 No more XSLT!
 Retrieves Managed Properties
@EricOverfield - pixelmill.com
Custom
Display
Templates
Push See
Let’s
Notifications
a Comparison
 Add to Master
Page Gallery
 Copy from an
existing display template
 Use any editor
@EricOverfield - pixelmill.com
Implementing Custom Display Templates
 Must specify all managed properties to surface
 May externalize CSS and JS that template needs
 Inline JS must appear after the first <div>
 Add HTML markup to render results
@EricOverfield - pixelmill.com
ALet’s
Look See
at
thea Code:
Item Template
Push
Notifications
Comparison
Obtain Managed Properties
<mso:ManagedPropertyMapping msdt:dt="string">
'LastModifiedTime':'LastModifiedTime',
'Specter Property Type'{Specter Property Type}:'SpecterPropertyType',
'Picture URL'{Picture URL}:'PublishingImage;PictureURL;PictureThumbnailURL',
'Link URL'{Link URL}:'Path',
'Line 1'{Line 1}:'Title',
'Line 2'{Line 2}:'Description',
'SecondaryFileExtension',
'ContentTypeId'
</mso:ManagedPropertyMapping>
@EricOverfield - pixelmill.com
ALet’s
Look See
at
thea Code:
Item Template
Push
Notifications
Comparison
Load Managed Properties into
JavaScript Variables
var specterPropertyType = $getItemValue(ctx, "SpecterPropertyType");
var lastModifiedTime = $getItemValue(ctx, "LastModifiedTime");
@EricOverfield - pixelmill.com
ALet’s
Look See
at
thea Code:
Item Template
Push
Notifications
Comparison
Display JavaScript Variables with
HTML Markup
<span class="_#= specterPropertyType=#_">
<a href="_#= linkURL =#_" class="thumb">
_#= pictureMarkup =#_
<div class="date">
<div class="d">_#= date=#_</div>
<div class="m">_#= month=#_</div>
</div>
</a>
<div class="caption">Property Type: _#=
specterPropertyType=#_</div>
</span>
@EricOverfield - pixelmill.com
Display Components and Their Mappings
Component
Type
File
Style for the
entire result set
block and for
each search
result item
CSS
style.css
Structure for
HTML tag:
the entire block
<ul>
of results
Display content
for each result
item
Pre-process
data for each
result item
HTML tag:
<li>
JavaScript
Control_List_Specter
Item_LargePicture_Specter
Inline JavaScript in
Item_LargePicture_Specter
SharePoint Artifacts
CSS file in the Master Page Gallery:
/Spectergroup/css/style.css
Custom Control display template in
the Master Page Gallery:
/Display Templates/Content Web
Part/Control_List_Specter.html
Custom Item display template in the
Master Page Gallery:
/Display Templates/Content Web
Part/Item_LargePicture_Specter.html
Custom Item display template in the
Master Page Gallery:
/Display Templates/Content Web
Part/Item_LargePicture_Specter.html
@EricOverfield - pixelmill.com
Display
Templates
Review
Push See
Let’s
Notifications
a Comparison
Copy an existing display template
Add managed properties to top of display template
Customize with HTML, JavaScript and CSS
@EricOverfield - pixelmill.com
That is SharePoint 2013
Content
Rollup
OK?
in a Nutshell
@EricOverfield - pixelmill.com
Fine Tune Search Results
and Content Rollups
@EricOverfield - pixelmill.com
Target Individual
Result Items!
@EricOverfield - pixelmill.com
Quick
PushTest
Let’s
See
Notifications
a Comparison
 Wait, what, a Test?
 Find the PDF
 Find Joanna’s Project
@EricOverfield - pixelmill.com
The Problem
 Results all look the same
 But all documents/results are not the same
 Forces us to search our results
@EricOverfield - pixelmill.com
Demo Solution: What We Want to Build…
Scenario:
Customize Search Experience
When user searches for “floor plans”
Customize floor plans result type
as best bets
Promote beachfront properties
in the summer
Result Types
Tailor the look of important types of results
One of these things… is not like the other.
@EricOverfield - pixelmill.com
Result Types
 Conditions match result properties
 Identify a “type” of result
 Display Templates can change the look
 Of a “type” of result
@EricOverfield - pixelmill.com
Your Own Result Type
@EricOverfield - pixelmill.com
And Thus Styled
@EricOverfield - pixelmill.com
Query Rules
 Custom results based on intent
 May be created at various levels
Search Service App or Site Collection and inherited
 May be deactivate at child levels
@EricOverfield - pixelmill.com
Create a Query Rule
 Condition: Set of conditions to match to fire rule
One or more conditions per rule
Six types of conditions available
 Action: What to do when rule fired
One or more actions per rule
Six types of actions available
 Publishing: When should a rule be active
i.e. only during a certain time span
@EricOverfield - pixelmill.com
Your Own Query Rule
Add a Summer Promotion for Beachfront Properties
@EricOverfield - pixelmill.com
@EricOverfield - pixelmill.com
@EricOverfield - pixelmill.com
And Thus Promoted
@EricOverfield - pixelmill.com
Result
Query Rules Review
PushTypes
Let’s
See
Notifications
aand
Comparison
Result Types Match Conditions to Item Display Templates
Query Rules Match Conditions with Actions
@EricOverfield - pixelmill.com
What You Did Learn
 Aggregate Content Across Sites
cross-site publishing feature
 Create Content Rollup Solutions
custom display templates
 Customize Individual Search Results
result types
 Fine-tune Search Queries
query rules
@EricOverfield - pixelmill.com
Resources
Configure cross-site publishing in SharePoint 2013:
http://technet.microsoft.com/en-us/library/jj656774.aspx
Connect a publishing site to a catalog:
http://technet.microsoft.com/en-us/library/jj679901.aspx
Administer search in SharePoint Server 2013:
http://technet.microsoft.com/en-us/library/ee792877.aspx
Display template reference in SharePoint Server 2013:
http://technet.microsoft.com/en-us/library/jj944947.aspx
Understanding the display template structure:
http://msdn.microsoft.com/en-us/library/jj945138.aspx#bk_DTstructure
Make a query rule inactive:
http://technet.microsoft.com/en-us/library/jj871014.aspx#BKMK_MakeInactive
Customize search result types:
http://technet.microsoft.com/en-us/library/dn135239.aspx
Create query rules:
http://technet.microsoft.com/en-us/library/jj871014.aspx
@EricOverfield - pixelmill.com
Integrating Search Driven
Content in SharePoint 2013
Thank You
Eric Overfield
@EricOverfield
ericoverfield.com
eoverfield@pixelmill.com