sharepoint 2013 search - a developer’s perspective - spssv 2013

Post on 01-Jun-2015

735 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

INTRODUCTION TO SHAREPOINT 2013 SEARCH AND CREATING DYNAMIC

CONTENT MANAGEMENT SOLUTIONS

Ryan McIntyre

MCITP, MCPD

Director, Portals & Collaboration

@ryanmcintyre

Thank You to Our Sponsors

• SharePoint 2013 Search Overview– Changes from 2010

• Search Solutions• OOTB Web Parts Review• API

– Server side

– Client side

• Packaging & Deployment

LEAVE NOW…OR…

SCENARIOS

Powerful Engine

2013 SEARCH INTRO

FAST Index FS4SP 2010

Search2013

Search

2013 SEARCH ARCHITECTURE

HTTPFile sharesSharePointUser profilesLotus Notes DocumentumExchange foldersCustom - BCS

SharePointSP AppsDevicesNon-SP UX

SearchAdmin

Content UX

CrawlContentProcessing Index

QueryProcessing WFE

API

AnalyticsProcessing

FAST Search Index

Public API

Unit of scale/role boundary

Feeding Chain Index Core

Query Chain

Analytics Service

• Content Source

• Search Schema– Now available through

site administration

• Query Rule– Customization of

returned results

– Captures Intent, composed of

• Query Condition

• Query Action

• Publishing Options

CORE BUILDING BLOCKS

• Query Transforms– Web Parts (3)

– Query Rule (2)

– Result Source (1)

• Result Source– Scope +

– Federated +

• CSWP

CORE BUILDING BLOCKS

• Result Type– How to display types of

results

• Display Templates– CSWP

– Hover Panel

– Refiner

– Search Results

CORE BUILDING BLOCKS

SEARCH EXPERIENCE

Query Rules – what’s “on sale”

today?

Display Template – show an image with

a description

Result Types – when content class =

merchandise use my display template

Result Source – catalog of items

Recommendations – People who viewed this also

viewed thatPersonal Query

History – what did you find before?

Refiners – used for faceted

navigation

SEARCH IN ACTION DEMO

EXECUTING QUERIES

EXECUTING QUERIES: KQL

EXECUTING QUERIES: REST

Keywords http://server/site/_api/search/query?querytext='{KQL Query}‘

Selecting Properties http://server/site/_api/search/query?

querytext='test'&selectproperties='Title,Rank'

Sorting http://server/site/_api/search/query?

querytext='test'&sortlist='LastModifiedTime:descending' http://server/site/_api/search/query?

querytext='test'&sortlist='LastModifiedTime:descending,Rank:ascending'

EXECUTING QUERIES: REST

<d:RelevantResults m:type="Microsoft.Office.Server.Search.REST.RelevantResults"> <d:RowCount m:type="Edm.Int32">16</d:RowCount> <d:Rows m:type="SP.SimpleDataTable"> <d:Rows> <d:element m:type="SP.SimpleDataRow"> <d:Cells> <d:element m:type="SP.KeyValue"> <d:Key xml:space="preserve">Rank</d:Key> <d:Value xml:space="preserve">29.4688339233398</d:Value> <d:ValueType xml:space="preserve">Edm.Decimal</d:ValueType> </d:element>

EXECUTING QUERIES: CSOM

ClientContext ctx = new ClientContext("http://sharepointonline/site");

var query = new KeywordQuery(ctx, ctx.Site);query.QueryText = "Search terms";query.ResultTypes = ResultType.RelevantResults;query.Id = Guid.NewGuid();var queries = new KeywordQuery[1];queries[0] = query;SearchExecutor searchExecutor = new SearchExecutor(ctx);var rcc = searchExecutor.ExecuteQueries(queries);ctx.ExecuteQuery();

QUERY DEBUGGING

CSWP & DISPLAY TEMPLATE DEPLOYMENT

• <cringe>Design in UI</cringe>• Export• Visual Studio solution

– Create “host” page

– Add markup for CSWP from export

– Properly escape ‘{‘, ‘}’, and quotes in DataProviderJSON property

CSWP DEVELOPMENT & DEPLOYMENT

• Create HTML file and verify results in UI• Export JS• Visual Studio solution

– Include JS

– Deploy to “_catalogs/masterpage/Display Templates/Content Web Parts”

– {Optionally, deploy HTML (not JS) and programmatically update file post-deployment to generate JS}

DISPLAY TEMPLATE DEVELOPMENT & DEPLOYMENT

DEPLOYMENT DEMO

SCENARIOS

Ryan McIntyre

ryan.mcintyre@neudesic.com

http://blog.randomdust.com

@ryanmcintyre

303-520-6337

• http://sp2013searchtool.codeplex.com/

RESOURCES

Join us right after the event at the Firehouse Grill! Socialize and unwind after our day of learning.

1765 E. Bayshore RoadEast Palo Alto, CA

Don’t Forget SharePint

Thank you for joining us Today!

top related