1. Let’s Build a Search-Based
Application in SharePoint 2013
Baltimore SharePoint User
Group
July, 2013
Matthew J. Bailey
2. Session Agenda
What used to take days or weeks to program can
now be done with simple Query Rules, Result
Sources, Promoted Results & other new features
of SharePoint 2013 search. See how we can
create a functional, multi-media based search
experience based on the user's needs and
intended results.
Topics we going to cover in this session:• What is a search-based application?
• New features of SharePoint 2013 search
• Solve a real world (sort of) business case scenario with search
related functionality
3. Matthew J. Bailey, MCTS
SharePoint Business Analyst &
IT Project Manager
JDSU
I consider myself a “SharePoint All-Rounder”. My job tasks vary from
Administration, Development, Training, Analyst, UAT and Project Management.
My job changes daily based on the crazy life of an IT fellow in corporate
America, but it keeps things interesting!
I am not an expert with SharePoint search and have not worked FAST too
much, however I have worked with SEO, search analytics and design and
SharePoint in general for several years. If I don’t know an answer to one of your
questions, I will try to find out or point you in the right direction!
Oh, did I mention my “dry” sense of humor? No worries, you’re about
to experience it while learning SharePoint at the same time
4. Special thanks to…
• Eric Harlan for helping me with my
presentation setup on Azure
• http://www.ericharlan.com/
Other notes…
• Search in SharePoint 2013 is powerful.
Simple, yet complex. There is far more than
what I will discuss today available to you. It
is more than I can cover in one demo but I
hope it is enough to peak your interest in it.
5. What is a Search-Based or Search Driven
Application?
There are various definitions:
• Using search as a data access technology. This is less about the UI and more
about the concept of using search features, queries and indexes to retrieve your
data.
• Using search as the interface. This concept is more along the lines of presenting
the user a web page that looks more like a search experience, whether it be a
basic search with type-ahead features or a multiple field advanced search type of
concept.
• Extending the existing search center. ADD MORE HERE TO BE CONSISTENT
• Adding URLs that have search queries in them. ADD MORE HERE TO BE
CONSISTENT
6. Benefits of Search-Based or Search
Driven Applications
• Less risk, no code deployments vs. configurations
• Easier to troubleshoot issues with results than code
• Must faster than coding
• More dynamic, flexible to gather and manipulate data
9. Why do I love search in SharePoint
2013 sooooooooo much?
• Intent based
• Dynamic improvement
• Ease of use
• Massive flexibility
• Visual Interest
• Multimedia/format
• Huge productivity increases/time savings
• All of the expensive features that use to be in FAST are now free
• Makes me look good to my boss when I create awesome searches
• I can make it be exactly what I WANT! (is this all about control? Enquiring
minds would like to know…)
No one even paid me to say this!
10. My Development Environment
• Running on Windows Azure
• 3 VMs – 1 AD, 1 SQL, 1 SP
• Configured with very high performance settings
• Do not have Office Web Apps installed, but will show an example of how
this functions from my Office 365 account.
*NOTE: Make sure to check out my link at the end of the presentation where I have
included a list of several options to create your own SharePoint 2013 “playground” if
you do not have one.
11. Business Case
There is always something going on at inCogNeato. Productivity is down, morale
and employee motivation are low, profit margins aren’t high enough, we aren’t
meeting our new client goals, operating costs are too high, etc. Frankly speaking,
the cog business just isn’t what it use to be.
Hugh Jordeal (Executive Director Manager Supervisor) has held an important
meeting discussing changes we need to make immediately in regards to the launch
of the product that will save the company, the “NewCog5000”. Hugh has assigned
certain tasks to some employees that need to be accomplished “pronto”.
Unfortunately, no one is sure how to meet the lofty goals assigned and complaints
are coming in to the help desk that no one can find anything on the intranet to do
their job. Word makes it up to Hugh and IT gets a call that someone better fix the
intranet or else. IT needs to whip up an application to help everyone out, and as
usual, it was due yesterday.
No worries, I’ve got it all figured out (I think).
12.
13. What are Our Requirements and/or
Issues?
• People are seeing incorrect results or cannot find items that are there.
• People cannot find what they are looking for and some people are searching for
things they shouldn’t be
• People don’t know how to search, need guidance or do not know some things
are there.
• Important and related data is spread all over due to lack of governance.
• Experience is very lackluster, uninspiring, unmotivating.
14. What are Our Solutions?
• People are seeing incorrect results or cannot find items that are there.
Continuous Crawl
• People cannot find what they are looking for and some people are searching for
things they shouldn’t be.
Result Sources & Query Rules
• Don’t know how to search, need guidance and don’t know some things are
there.
Search Verticals & Refinement Panel
• Important and related data is spread all over due to lack of governance.
Content Search Web Part
• Experience is very lackluster, uninspiring, unmotivating.
Design Manager / Display Templates
15. Issue
People are seeing incorrect results or cannot find items that are there.
Solution
Continuous Crawl
• It is available only for content sources that use the SharePoint Sites content
source type.
• Set intervals: The default interval is 15 minutes, but you can set continuous
crawls to occur at shorter intervals by using Windows PowerShell.
• Continuous crawls ensure content freshness: Unlike full and incremental
crawls, multiple continuous crawls can run at the same time. For example, if
one continuous crawl is processing a large update, another continuous crawl
can start at the same time and crawl and index other content updates.
• Very resource intensive, need to plan for an architecture to support this.
• Once enabled, cannot be deleted but it can be disabled and/or re-enabled
again.
17. Enable Continuous Crawl
• As an Administrator for the Search service application, in Central
Administration, in the Application Management section, click Manage service
applications.
• Click the Search service application.
• On the Search Administration page, in the Quick Launch, under Crawling,
click Content Sources.
• On the Search Service Application: Manage Content Sources page, click the
SharePoint content source for which you want to enable Continuous Crawl.
• In the Crawl Schedules section, select Enable Continuous Crawls, click OK.
• Verification: In the Search Service Application: Manage Content Sources
page, verify that the Status column has the status Crawling Continuous.
• To change the frequency of the Continuous Crawl schedule, run SharePoint
2013 Management Shell as Administrator, enter PowerShell script (the 1 is 1
minute):
• $ssa = Get-SPEnterpriseSearchServiceApplication
$ssa.SetProperty("ContinuousCrawlInterval",1)
• More specifics and issues can be found at:
18. Issue
People cannot find what they are looking for and some people are searching for
things they shouldn’t be. – Demonstration…
Solution
Query Rules
Provides the ability to influence the search results by overriding the term the user
entered to force it to go to a certain result. They are processed under certain
conditions.
They are composed of 4 items:
1. Context
2. Condition
3. Action
4. Publishing
They are applied to a Result Source. They can also be applied at the site, site
collection or service application level.
*NOTE: If you want Query Rules to apply in all your websites and the search center, you
should apply these at the web application level as the search center is actually a different
site collection from your other sites.
20. Apply Query Rules
Assist users in finding what they need
As an Administrator for the Search service application, in Central Administration,
in the Application Management section, click Manage.
• Select Query Rules
• Add the Query Conditions
• Select Result Blocks
What does this do?
Prevents users from finding what they don’t need
• Create Query Rules to inform users of “inappropriate searches”
• Create Query Rules to help users find relevant data or misspellings
21. Hover Panel / Document Preview
With a full Enterprise installation of SharePoint 2013, you need to have an Office
Web Apps server for the document previews to work. This is enabled by default
in Office 365 however.
Due to the limitations of my demo environment I do not have this installation
setup.
22. How is this going so far? Too fast, too
slow, too complex, too easy, too silly?
23. Continuous Crawl Checkup
Let’s go back and see if our information appears in search now
• big expensive lunch
• order my limo to airport
• arrange my private jet
24. Issue
Important and related data is spread all over due to lack of governance.
Solution
Content Search Web Part (CSWP)
Like a pre-built search query to provide search results.
• More functional than a Content Query Web Part (CQWP) as it has more than
3 levels of criteria & can span SC
• Can be offered to a “power user” to create meaningful results or be beneficial
to a developer in a highly restricted, Change Management “heavy”
environment
• Offers refining, sorting, display options and much more with little or no code
(well… KQL)
*NOTE: The Content Search Web Part is only available in the Enterprise edition of an on-
premise/full trust installation of SharePoint 2013. As a replacement, there is an option to
use the Search Results web part instead which has almost all of the same features (but
not quite). Check out Benjamin Niaulin’s link here:
http://en.share-gate.com/blog/sharepoint-2013-content-search-webpart
25. Issue
Important and related data is spread all over due to lack of governance.
Solution
Content Search Web Part (CSWP)
Like a pre-built search query to provide search results.
• More functional than a Content Query Web Part (CQWP) as it has more than
3 levels of criteria & can span SC
• Can be offered to a “power user” to create meaningful results or be beneficial
to a developer in a highly restricted, Change Management “heavy”
environment
• Offers refining, sorting, display options and much more with little or no code
(well… KQL)
*NOTE: The Content Search Web Part is only available in the Enterprise edition of an on-
premise/full trust installation of SharePoint 2013. As a replacement, there is an option to
use the Search Results web part instead which has almost all of the same features (but
not quite). Check out Benjamin Niaulin’s link here:
http://en.share-gate.com/blog/sharepoint-2013-content-search-webpart
29. Explore Learning Keyword Query Language
(KQL)
To really make your applications “shine”, here are some popular terms to get you
started:
• XRANK – to assist with sorting
• Wildcard * - to display variants of terms
• Near - to display terms with slight variation (e.g. John vs. Jon)
• ONEAR - http://msdn.microsoft.com/en-us/library/ee558911.aspx
• ContentClass=STS_Web – a specific Content Type from SharePoint (web,
events, tasks, etc.)
These are good to get you started, but for
more references check out these links:
http://msdn.microsoft.com/en-us/library/hh644280(v=office.12).aspx
http://msdn.microsoft.com/en-us/library/hh625658(v=office.12).aspx
http://extreme-sharepoint.com/2011/10/28/sharepoint-keywordquery/
30. Just in Case You Bored…
Have a look at some XRANK sorting algorithms, fun for the whole
family!
31. Search Verticals
Link to anything but usually links to a custom search
result page. The existing search verticals OOTB are:
• An .aspx page with some search web parts
• The Search Results web part configured to use a Result Source
33. Easily create your own Search Vertical with a Result
Source:
• Go to the Search Center pages library.
• Copy a result page that already exists via Open in Explorer or SharePoint
Designer.
• Rename the page to something related to its purpose.
• Edit the page and the Search Results web part and change the Search Criteria to
a different Result Source (either one that already exists or a new one you
created).
• Save, check-in/publish the page.
• Go to search center Site Settings Search Settings.
• Add a navigation link to your new custom search result page, and save.
Easily create a Search Vertical to other links:
• Go to search center Site Settings Search Settings.
• Add a navigation link to wherever you like, and save
34. Refinement Panel
Out of the box refiners provided, custom refiners available for
adding from managed properties
37. Issue
The interface is uninspiring and not standard to
corporate design. The Graphic Design department
is none too pleased…
Solution
Design Manager / Display Templates
• Quickly use a pre-built template from the installed selections or import your own
Design Package for a custom look.
38. Display Templates (won’t go into but know they are there)
• Display templates in SharePoint Server 2013 are templates used in Search
Web Parts
• They show the results of a query made to the search index.
• Display templates control which managed properties are shown in the search
results, and how they appear in the Web Part.
• Each display template is made of two files: HTML file and .js file (use to be
the xslt designer in 2010)
• Only Search Web Parts can use display templates (i.e., Search
Results, Content Search, Taxonomy Refinement)
• http://msdn.microsoft.com/en-us/library/jj945138.aspx
• http://www.youtube.com/watch?v=yC4LZapFdfY
39. And so much more…
• All types of different rule variations
• All types of different ways to display results
• All types of concepts to personalize search per user
• All types of sorting on rules
• All types of queries using KQL
• All types of coding against the search object
model/CSOM, from apps, against the index, etc.
40. Now that we understand search in
SharePoint 2013, everyone is a happy
family…
41. Feel free to connect:
@matthewjbailey1
http://www.matthewjbailey.com
http://www.linkedin.com/in/matthewjbailey1
sharepointmatthew@gmail.com
Download my slides and get started at:
http://www.matthewjbailey.com