Download - Ektron 8.5 RC - Search
The 8.5 Search Architecture
Bill Cava• Chief Evangelist, Ektron• http://twitter.com/billcava• [email protected]
AGENDA & OVERVIEW
• What’s New in 8.5 Search
• Search Design Considerations
• Search Developer Experience
– Keyword Query Syntax
– Search Framework API
– Search Framework UI – Templated Controls
• Search Architecture
– Crawling, Querying, Ranking, Diagnostics
• Hardware/Software Requirements
8.5 SEARCH - OVERVIEW
• Microsoft
Search Technology
• Supports All Types of Content
• Features Include• Faceted Navigation
• Narrow/Expand Queries Based on Taxonomies
• Suggested Results• “Did you mean?”
• Federated Search• Search Ektron, SharePoint, SAP, OpenText, IBM, Etc.
• Dynamic Relevancy• Re-Order Search Results Based On User Behavior
• Search High Availability Upgrade• Clustered, Enterprise Scalable Search Capability
GETTING THINGS SETUP
Documentation• http://bit.ly/ektron-85-search-docs
– Installing and Configuration of Ektron Search
– Installing Search Server
– Understanding the Search Crawl
– Searching a Website
Upcoming Screencast• Installation & Configuration of Search
Server
WHO USES SEARCH? WHAT DO THEY WANT?
Site Visitors
• A modern site
search experience
• Google & Bing like
features
• Fast & relevant
search results
• Auto corrections
• “Search just works”
Developers
• An API to query for
content across
properties
• A fast and reliable way
to retrieve content
• Insight into the crawling
process
• Insight into underlying
queries and results
returned
WHAT IS “SITE SEARCH?”
• Search as Navigation
• Site Search vs. Internet Search
• Search strategy, defined goals
• Features support strategy
WHAT IS “APPLICATION SEARCH?”
• Use your search for more than
simply site-search
• Search index has
denormalized view of content
• Uses a Search API to deliver
dynamic lists of data
APPLICATION SEARCH BASED DELIVERY
• Denormalized search index
• Search cross-cutting properties
–Provide a content list based on a folder, tagged with a category, with certain metadata.
• Strength of Site Search
• Usability
– A compact API; performs complex searches
using short, expressive syntax
• Extensibility
– Abstraction layer over search
– Provides future proofing for future releases
– An upgrade safe search and a maintainable
search platform
“We have made a very strong effort into producing a usable and extensible Search API in the 8.5 Release” – Chris Banner, 8.5 Search Engineer @ ektron
DEVELOPER EXPERIENCE
3 Ways to Retrieve Search Results
• Keyword Query Syntax
• Search Framework API
• Search Framework UI’s Templated
Server Controls
KEYWORD QUERY SYNTAX
• Basic Search
• Boolean Operators – AND, OR, NOT
• Group phrases w/ parens – ((a OR b) AND c)
• Wildcards – run*, account*
• Managed Properties – contentId, folderId
• Metadata – ektron/metadata/[name]/[type] > 0
• SmartForm Data – ektron/sf/[name]/[type] : “value”
INTRO TO SEARCH FRAMEWORK API
Three Elements of Search
Framework API
• Search Manager– manager.Search(criteria)
• Search Criteria– criteria.QueryText = "ektron";
• SearchResponse Data Type
SEARCH MANAGER
using Ektron.Cms.Framework.Search;
SearchManager manager =
new SearchManager();
SearchManager manager =
new SearchManager(ApiAccessMode.Admin);
SearchManager manager =
new SearchManager(
ApiAccessMode.LoggedInUser);
SEARCH CRITERIA
using Ektron.Cms.Framework.Search;
KeywordSearchCriteria criteria = newKeywordSearchCriteria();
criteria.QueryText = "ektron";
ADVANCED SEARCH CRITERIA
using Ektron.Cms.Framework.Search;
AdvancedSearchCriteria criteria = new AdvancedSearchCriteria();
criteria.ExpressionTree = SearchContentProperty.Title.Contains("web");
ADVANCED SEARCH CRITERIA
using Ektron.Cms.Framework.Search;
AdvancedSearchCriteria criteria = new AdvancedSearchCriteria();
criteria.ExpressionTree = SearchContentProperty.Title.Contains("web") & !SearchContentProperty.Title.Contains("cms");
ADVANCED SEARCH CRITERIA
using Ektron.Cms.Framework.Search;
AdvancedSearchCriteria criteria = new AdvancedSearchCriteria();
criteria.ExpressionTree = (SearchContentProperty.Title.Contains("web") & !SearchContentProperty.Title.Contains("cms")) |
SearchContentProperty.Title.Contains(“ektron");
ADVANCED SEARCH CRITERIA
SearchContentProperty.Title
SearchContentProperty.DateCreated
SearchContentProperty.Private
SearchContentProperty.FolderName
SearchContentProperty.Id
SearchContentProperty.ExpiryDate
SearchContentProperty.ExpiryType
SearchContentProperty.Author
... only a subset, dozens more available
FRAMEWORK API VS SEARCH API?
Framework API
• Returned a
ContentData object
• Queries against the
source of truth
• Querying against
ContentData
properties
• Simple criteria using
Filters
Search API
• Returned a
SearchResult object
• Search Indexes aren’t
instantly updated
• Querying against
properties that span
types (taxonomy, etc)
• Complex criteria using
expression trees
DEMO:
SEARCH FRAMEWORK API
SEARCH FRAMEWORK UI
TEMPLATED SERVER CONTROLS
“We built the templated controls to be a base for
our customers to use to build their websites. They’re designed to be flexible.” – Steve Mann, 8.5
Search Engineer
• Tight, semantic markup means
designers customize the look and feel
just by using CSS
• No XSLT needed. Markup controlled
using ASP.NET templates
SEARCH FRAMEWORK UI
TEMPLATED SERVER CONTROLS
• SiteSearch– Site Search Interface
– Simple controls
– No JavaScript Dependencies
• UserSearch
• ProductSearch
• XmlSearch
DEMO:
SEARCH TEMPLATED CONTROLS
WHAT ABOUT UPGRADES?
If you use the …
• Legacy Search Server Controls (pre-8.5)
• Legacy Search API (pre-8.5)
Then …
• Your upgraded site will route through new architecture
• Recommended to upgrade code to use the new APIs & Controls
WHAT ABOUT UPGRADES?
If you wrote CISSO queries …
• Need to rewrite queries to use the new
Search API or Server Controls
If you used Integrated Search feature
• Needs to be reconfigured to use 8.5
Federated Search capabilities
SEARCH ARCHITECTURE
WHAT IS CRAWLING?
A crawl is the process by which search server
pulls data from the CMS to construct its
internal indexes
CRAWL TYPES
Full Crawl
• Indexes the entire CMS database
• Metadata Definitions
• Smart Form Definitions
Incremental Crawl
• Indexes data from the CMS that has changed since the last crawl
• 5 minute window by default
CRAWLING PROCESS
QUERYING PROCESS
DIAGNOSTIC TOOLS &
ADMINISTRATION CONSOLE
• Status information on crawling process
• Readily accessible through the
Workarea
• Advanced information through
Microsoft Search Server Admnistrative
Console
HARDWARE REQUIREMENTS
Processor Requirements
– 64-bit, Quadcore
RAM Requirements
– For development: 4 GB
– For evaluation or single-server production
use: 8 GB
– For multiple-server production use: 16 GB
For SQL Server used by Search Server
Total size of content databases
Recommended RAM
Minimum for multiple-server farm
16 GB
Up to 2 terabytes 32 GB
2 terabytes to 5 terabytes 64 GB
5 terabytes to 10 terabytes
64 GB to 128 GB
Disk Space
–Rule of Thumb: Index size + 80 GB
free space, plus 2x the ram on the
production
Note
–Search stores full-text index file on
the file system of the query servers
SOFTWARE REQUIREMENTS
Operating System
– The 64-bit edition of Windows Server
2008 Standard, Enterprise, Data
Center, or Web Server with Service
Pack 2 (SP2).
– The 64-bit edition of Windows Server
2008 R2 Standard, Enterprise, Data
Center, or Web Server.
Database Server
– The 64-bit edition of Microsoft SQL
Server 2008 with Service Pack 1 (SP1)
and Cumulative Update 2
(CU2), CU5 or CU6.
– The 64-bit edition of Microsoft SQL
Server 2005 with Service Pack 3 (SP3)
–Microsoft SQL Server 2008 R2
SOFTWARE REQUIREMENTS
Questions?
Bill Cava• Chief Evangelist, Ektron• http://twitter.com/billcava• [email protected]