Max Melcher presented on building search-driven applications with SharePoint 2013. He discussed how modern portals are now driven by search to dynamically aggregate content from any source. This allows for individualized, high performance experiences tailored for each user. He demonstrated examples built with the content by search web part, JavaScript object model, and .NET client object model to retrieve and display search results.
3. Maximilian Melcher
Maximilian Melcher (MCSE, MCPD) is a Managing Consultant for Alegri
International Services in Munich, Germany. Max is a specialist in SharePoint
technologies focused on search, social computing, web content management
and collaboration. Max has led SharePoint implementations for Dax 30
companies since 2009. Max’s free time is spent on twitter mostly with a good
coffee in his hands.
Twitter: @maxmelcher
Blog: http://melcher.it
Email: Maximilian.Melcher@alegri.eu
www: http://alegri.de
2
4. SharePoint Search History
FAST Search for SharePoint
• Common Crawl and Query
Components
• FAST and SharePoint Farm
are tightly coupled
FAST ESP for SharePoint
• License Deal for FAST and
SharePoint 2007
• The original FAST
Integration was used
SharePoint 2013
Search
• ONE Search Engine
• ONE Farm
• Simple, easy, powerful
6
14. Crawled Property Managed Property
DocId Partition Content Title Author Modified RefinableText1
111 0 Xyz... My lab ... Rune ... Some value
222 0 Abc... My Word ... Rune ... ...
333 1 .... ....
Crawled Properties
Managed Properties
Content
Processing
14
15. KQL or FQL
TermA TermB = free text search
TermA + TermB or TermA AND TermB = both terms must be present
Property Query
author:”Max Melcher”
Good read: SharePoint Search Queries Explained by
Mikael Svenson.
2
Query Language
17. Modern Portals are based on Search Driven Apps
Dynamically aggregated content – no matter where
Individual, modern design
Performance / Scale
Tailored for users
fast, responsive, sexy
17
26. Available options for search driven applications
26
JavaScript Client Object Model (JSOM)
C# Client Object Model (CSOM)
REST
Server Side Object Model (SSOM)
Content By Search WebPart
27. Question: “all master data files for my location”
2
Content by Search WebPart: Example
29. Variables will be replaced during query runtime:
{searchTerms}
{Site} oder {Site.URL}
{Site.<Eigenschaft>}
{User} or {User.Name}
{User.<Eigenschaft>}
…
MSDN: Query Variables
? – If Operator
{?{searchTerms} -ContentClass=urn:content-class:SPSPeople}
2
Query Variables
30. Question: “all master data files for my location”
Query: ContentType:”Projektstammblatt” AND
Location:{User.Standort}
2
Content by Search WebPart: Beispiel
33. Minimal example for JSOM:
var ctx = SP.ClientContext.get_current();
var keywordQuery = new Microsoft.SharePoint.Client.Search.Query.KeywordQuery(ctx);
keywordQuery.set_queryText("SharePoint");
var searchExecutor = new Microsoft.SharePoint.Client.Search.Query.SearchExecutor(ctx);
var results = searchExecutor.executeQuery(keywordQuery);
ctx.executeQueryAsync(
function (s, a) {// Success},
function (s, e) {// Error}
);
2
JSOM
37. 37
CSOM: Code
Question: “all master data files for me”
Query:
Author:"Max Melcher" OR ModifiedBy:"Max Melcher"
ContentType:Projektstammblatt
Note: Query Variables do not work in apps.
39. 2
Demo: Customer Directory
Awesome example: http://sympmarc.com/series/create-a-
simple-sharepoint-2013-employee-directory-on-
office365/ by Marc D Anderson
45. Implementing a better search experience
by Elio Struyf
- #SPSBE07
How to build your own Delve: combining machine learning, big data and SharePoint
by Joris Poelmans
- #SPSBE11
SPSBE Search Sessions
Editor's Notes
Template may not be modified
Twitter hashtag: #spsbe for all sessions