Eric Overfield - SearchDrivenContentinSharePoint2013

Download Report

Transcript Eric Overfield - SearchDrivenContentinSharePoint2013

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
[email protected]