View
225
Download
3
Category
Preview:
Citation preview
SharePoint 2016 Search
Mike MaadaraniSharePoint Architect, MVP
Thank You for being a part of SharePoint Saturday Nashville!
Platinum Sponsors
Gold Sponsors Silver Sponsors Bronze
BJ's Brewhouse2455 Medical Center Pkwy
Giveaways #SharePint
3:45PMRoom S204
Must be present to win!
Welcome & Introduction
Mike Maadarani, Ottawa
• App Dev and Architecture for over 21 years (18 Years Microsoft, 3 Years with the “Other Guys”)
• Business focused on Enterprise Content Management, Search, & Publishing Sites
• Architect, trainer, and presenter
mike@maadarani.com
www.maadarani.com @mikemaadarani
Past and Future What’s new?
Agenda
Closing and Q&ADemoSharePoint 2016
Search Overview
Cloud Search Service Application
FAST Search for SharePoint 2010
FAST
Content
SSA
FAST
Query
SSA
FAST back-end components
(managed separately)
Extensibility:
• Sandbox
• Entity
Extraction
SharePoint 2013 Search Architecture
SharePoint
SP Apps
Devices
Non-SP UX
HTTP
File shares
SharePoint
User profiles
Lotus Notes
Documentum
Exchange folders
Custom - BCS
Public API
Search topology components
2016 Search
Hybrid Search is here; and easier to implement!
Scale up to 500 million items
20 million items per index (x25 index partitions)
Increaser performance optimization to the query processing
New failure logic for queries between index replicas
9
What is hybrid search?
Unified Search Result Set from both On-Perm and SharePoint Online
Delve Integration
Content Sources:
On-Prem, SPO, OneDrive, Shared Drives
Hybrid Search in 2016
Hybrid Search in 2016
What is Federated Hybrid Search
1. SP2013 with August 2015 CU or SP 2016
2. O365 Subscription
3. Azure Subscription
4. Synchronize users and groups from on-premises to Office365 Azure Active Directory – AAD Connect
5. Create cloud Search service application
6. Install onboarding pre-requisites
7. Execute onboarding script
Mandatory Requirements
Sync
SP 2013 SP 2010 SP 2007 Fileshares BCS
Cloud SSA
SPO
Search Index
1
2
34
5
67
Logical architecture: crawling
Corporate
network
Office 365
AD Sync Options
Tool TechNet Links
DirSync https://msdn.microsoft.com/en-us/library/azure/hh967642.aspx
https://msdn.microsoft.com/en-us/library/azure/jj151831.aspx
AADSync https://msdn.microsoft.com/en-us/library/azure/dn790204.aspx
AADConnect https://azure.microsoft.com/en-us/documentation/articles/active-
directory-aadconnect/
Azure AD Connect
SID S-1-5-21-1212121212-
1212121212-1212
mike@maadarani.com
msOnline-
OnPremiseSecurity
Identifier
S-1-5-21-1212121212-1212121212-
1212
PUID PUID-XXXX-XXXXXXXXXX
• Need Azure Subscription or trial subscription or Office 365 paid license
• Verified domain; xxx.onmicrosoft.com is not enough
• On-premise:• AD Server must be 2003 or later
• If password writeback, then min 2008 with latest SP and KB2386717; otherwise go 2008 R2+
• Azure AD Connect can be installed on AD or any server part of the domain
• If you plan password synchronization then server must be 2008 R2 SP1 or later
• .NET 4.5.1 or later and PS 3.0
• If ADFS, then SSL is needed x.509 (self-signed is OK in test lab)
AAD Requirements
AAD Install
• Create your on-premise VMs
• Install and Configure SharePoint as usual
• Create your web application/Site Collection
• Add Content
SharePoint 2016
• PowerShell or Central Admin
• If (PowerShell) {CloudIndex $true
IsHybrid = 1
}New-SPEnterpriseSearchServiceApplication -Name $SearchServiceAppName -ApplicationPool $appPool -DatabaseServer $DatabaseServerName -CloudIndex$true
Create a Cloud SSA
Cloud SSA PS$SSADB = "SharePoint_Demo_Search"
$SSAName = "Search Service Application SPS Nashville"
$SVCAcct = "mcm\sp_search"
$SSI = get-spenterprisesearchserviceinstance -local
#1. Start the search services for SSI
Start-SPEnterpriseSearchServiceInstance -Identity $SSI
#2. Create the Application Pool
$AppPool = new-SPServiceApplicationPool -name $SSAName"-AppPool" -account $SVCAcct
#3. Create the search application and set it to a variable
$SearchApp = New-SPEnterpriseSearchServiceApplication -Name $SSAName -applicationpool $AppPool -databaseserver SQL2012 -
databasename $SSADB –CloudIndex $true
#4. Create search service application proxy
$SSAProxy = new-SPEnterpriseSearchServiceApplicationProxy -name $SSAName" Application Proxy" -Uri $SearchApp.Uri.AbsoluteURI
#5. Provision Search Admin Component
Set-SPEnterpriseSearchAdministrationComponent -searchapplication $SearchApp -searchserviceinstance $SSI
#6. Create the topology
$Topology = New-SPEnterpriseSearchTopology -SearchApplication $SearchApp
#7. Assign server(s) to the topology
$hostApp1 = Get-SPEnterpriseSearchServiceInstance -Identity "SPWFE“
$Searchapp.SetProperty(“IsHybrid”,1)New-SPEnterpriseSearchAdminComponent -SearchTopology$Topology -SearchServiceInstance $hostApp1
New-SPEnterpriseSearchCrawlComponent -SearchTopology$Topology -SearchServiceInstance $hostApp1
New-SPEnterpriseSearchContentProcessingComponent -SearchTopology $Topology -SearchServiceInstance $hostApp1
New-SPEnterpriseSearchAnalyticsProcessingComponent -SearchTopology $Topology -SearchServiceInstance $hostApp1
New-SPEnterpriseSearchQueryProcessingComponent -SearchTopology $Topology -SearchServiceInstance $hostApp1
New-SPEnterpriseSearchIndexComponent -SearchTopology$Topology -SearchServiceInstance $hostApp1 –IndexPartition 0
#8. Create the topology
$Topology | Set-SPEnterpriseSearchTopology
Cloud SSA PS
Validate Cloud SSA Topology
Add-PSSnapin Microsoft.SharePoint.Powershell
$ssa = Get-SPEnterpriseSearchServiceApplication
Get-SPEnterpriseSearchTopology -Active -SearchApplication $ssa
Get-SPEnterpriseSearchStatus -SearchApplication $ssa -Text |ft Name,
state,Partition,Host -AutoSize
$ssa.CloudIndex
Validate Cloud SSA Topology
• Only 1 Cloud SSA Per Farm
• Multiple classic SSA can be created
• Topology Scaling is still the same
Considerations
Prerequisites:
• Microsoft Online Services Sign-In Assistanthttps://www.microsoft.com/en-ca/download/details.aspx?id=28177
***Need to Reboot before Proceeding to the next install***
• Microsoft Azure AD PowerShellhttp://go.microsoft.com/fwlink/p/?linkid=236297
Post Cloud SSA Installs - Onboarding
• Microsoft Online Services Sign-In Assistant(get-service msoidsvc).Status
• Microsoft Azure AD PowerShellimport-module msonline –verbose
import-module msonlineextended -verbose
Validate your installs
Param(
[Parameter(Mandatory=$true, HelpMessage="SharePoint Online portal URL, for example 'https://contoso.sharepoint.com'.")]
[ValidateNotNullOrEmpty()]
[string] $PortalUrl,
[Parameter(Mandatory=$false, HelpMessage="Name or id (Guid) of the cloud Search service application, created with the CreateCloudSSAscript.")]
[ValidateNotNullOrEmpty()]
[string] $CloudSsaId,
[Parameter(Mandatory=$false, HelpMessage="Logon credential for tenant admin. Will be prompted if not specified.")]
[PSCredential] $Credential
)
if ($ACS_APPPRINCIPALID -eq$null) {
New-Variable -Option Constant -Name ACS_APPPRINCIPALID -Value '00000001-0000-0000-c000-000000000000'
New-Variable -Option Constant -Name ACS_HOST -Value "accounts.accesscontrol.windows.net"
New-Variable -Option Constant -Name PROVISIONINGAPI_WEBSERVICEURL -Value "https://provisioningapi.microsoftonline.com/provisioningwebservice.svc"
New-Variable -Option Constant -Name SCS_AUTHORITIES -Value @(
"*.search.msit.us.trafficmanager.net",
"*.search.production.us.trafficmanager.net",
"*.search.production.emea.trafficmanager.net",
"*.search.production.apac.trafficmanager.net"
)
}
New-Variable -Option Constant -Name SCS_APPPRINCIPALID -Value '8f0dc9ad-0d19-4fec-a421-6d0279080014'
New-Variable -Option Constant -Name SCS_APPPRINCIPALDISPLAYNAME -Value 'Search Content Service'
New-Variable -Option Constant -Name SP_APPPRINCIPALID -Value '00000003-0000-0ff1-ce00-000000000000'
New-Variable -Option Constant -Name SPO_MANAGEMENT_APPPROXY_NAME -Value 'SPO App Management Proxy'
New-Variable -Option Constant -Name ACS_APPPROXY_NAME -Value 'ACS Proxy'
New-Variable -Option Constant -Name ACS_STS_NAME -Value 'ACS-STS'
New-Variable -Option Constant -Name AAD_METADATAEP_FSTRING -Value 'https://{0}/{1}/metadata/json/1'
$SP_VERSION = "15"
$regKey= Get-ItemProperty-Path "HKLM:\SOFTWARE\Microsoft\Office Server\15.0\Search" -ErrorActionSilentlyContinue
if ($regKey-eq$null) {
$regKey= Get-ItemProperty-Path "HKLM:\SOFTWARE\Microsoft\Office Server\16.0\Search" -ErrorActionSilentlyContinue
if ($regKey-eq$null) {
throw "Unable to detect SharePoint installation."
On-Boarding Process
Script Provided By the Product Group
4 stages:
1. Get-HybridSSA
2. Prepare-Environment
3. Connect-SPFarmtoAAD
4. Add-ServicePrincipal
On-Boarding Process
1. Get-HybridSSA
This stage validates that the cloud SSA name supplied as a parameter to the script execution is valid. If multiple SSAs are found and no parameter is supplied, then it attempts to validate an SSA that has the IsHybrid property set to 1.
On-Boarding Process
1. Prepare-Environment
This stage checks that the prerequisites for deployment are installed. It checks for MicrosoftOnline Single Sign-on Assistant and for Windows Azure PowerShell. If either of these tools are missing the script will exit with a prompt to install them.
On-Boarding Process
1. Connect-SPFarmtoAAD
This completes the OAuth trust configuration with Azure Access Control services (ACS) and deploys the ACS Proxy. Additionally, it deploys a new SPO connection proxy to enable the farm to communicate with the external endpoint of the cloud search service
On-Boarding Process
1. Add-ServicePrincipal
The penultimate stage adds the O365 Service Principal ID to the local farm and sets the correct Service Principal Name in Azure AD for the on-premises url. This ensures outbound query federation can succeed between the O365 tenant and the on-premises farm.
On-Boarding Process
Example search verticals (1)
SharePoint Online
Custom result source using Local SharePoint results plus a filter which excludes results from on-premises
TIP: Can be used during validation of hybrid search in the production tenant.
Result source query:
{searchTerms} NOT(IsExternalContent:1)
Example search verticals
On-Premises Search
• Where is my content???
• Search Center Returns no results
• RE-configuration of the on-premises search is required• Federated Search settings
In Review: Session Objectives And Takeaways
• Cloud Search Service Application• One Index in the cloud
• Multiple on-premises data sources + SharePoint Online
• One Search Center; One User Experience
• Configurations needed• AADConnect, Cloud SSA, Online Services Sign-in Assistant, Azure PowerShell,
Onboarding Script
• One Cloud SSA per tenant
• Scaling and optimization is the same as before
Thank you!mike@maadarani.com
@mikemaadarani
www.maadarani.com
Recommended