40
SharePoint Saturday Mo #SPSMontrea l 2 avril 2016 SharePoint Saturday Montréal SharePoint 2016 Search Mike Maadarani SharePoint Architect

SharePoint 2016 Search

Embed Size (px)

Citation preview

Page 1: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

2 avril 2016

SharePoint Saturday Montréal

SharePoint 2016 SearchMike MaadaraniSharePoint Architect

Page 2: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

Plat

ine

Or Arge

nt

Merci à nos commanditaires !

Bron

ze

Page 3: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

Welcome & IntroductionsMike Maadarani, Ottawa • App Dev and Architecture for over 20 years (17 Years Microsoft, 3 Years with

the “Other Guys”)• Business focused on Enterprise Content Management & Publishing Sites• Technology focused on SharePoint, SQL Server and SharePoint Integration• Architect, trainer, and presenter

[email protected]

www.maadarani.com @mikemaadarani

Page 4: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

Past and Future What’s new?

AgendaClosing and Q&ADemoSharePoint 2016

Search Overview

Cloud Search Service Application

Page 5: SharePoint 2016 Search

History Recap

Page 6: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

What is Office 365 hybrid search?

Page 7: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

Search in 2010

Crawl Component

Query Component

SharePoint 2010 Search Service Application

Crawl Indexing Engine

Query Engine

Search Admin

Property Store (SQL)

Content

UserWFE

Page 8: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

FAST Search for SharePoint 2010

FAST Content SSA

FAST Query SSA

FAST back-end components(managed separately)

Extensibility:• Sandbox• Entity

Extraction

Crawl Indexing Engine

Query Engine

Content Pipeline

Analysis Engine

Query Pipeline

Search AdminContent

UserWFE

Page 9: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

SharePoint 2013 Search Architecture

SearchAdmin

Content UserCrawlContent

Processing IndexQuery

Processing WFE

API

AnalyticsProcessing

Crawl

Search Admin

Link

Analytics Reporting

FAST Search Index

SharePointSP AppsDevicesNon-SP UX

HTTPFile sharesSharePointUser profilesLotus Notes DocumentumExchange foldersCustom - BCS

Public APISearch topology components

Content Query

Page 10: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

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

replicas10

Page 11: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

What hybrid search? Unified Search Result Set from both On-Perm and

SharePoint Online Delve Integration Content Sources:

On-Prem, SPO, OneDrive, Shared Drives

Page 12: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

Hybrid Search in 2016

Page 13: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

Hybrid Search in 2016

Page 14: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

What is Federated Hybrid Search

Page 15: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

1. SP2013 with August 2015 CU or SP 2016 Beta 12. O365 Subscription3. Azure Subscription4. Synchronize users and groups from on-premises

to Office365 Azure Active Directory (DirSync, AADSync, or AADConnect)   

5. Create cloud Search service application    6. Install onboarding pre-requisites 7. Execute onboarding script

Mandatory Requirements

15

Page 16: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

AD

AAD

Sync

SP 2013 SP 2010 SP 2007 Fileshares BCS

Cloud SSA

Content processing SPO

Search IndexItem queue

Parsed content

ACL mapping

12

34

56 7

Logical architecture: crawling

Corporate network

Office 365

Crawling and parsing

Page 18: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

Azure AD Connect

AD AAD

AccountName

MCM\mike

SID S-1-5-21-1212121212-1212121212-1212

AccountName

[email protected]

msOnline-OnPremiseSecurityIdentifier

S-1-5-21-1212121212-1212121212-1212

PUID PUID-XXXX-XXXXXXXXXX

Page 19: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

• 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

Page 20: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

AAD Install

Page 21: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

• Create your on-premise VMs• Install and Configure SharePoint as usual• Create your web application/Site Collection• Add Content

SharePoint 2016

Page 22: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

• PowerShell or Central Admin• If (PowerShell) {

CloudIndex $trueIsHybrid = 1

}New-SPEnterpriseSearchServiceApplication -Name $SearchServiceAppName -ApplicationPool $appPool -DatabaseServer $DatabaseServerName -CloudIndex $true             

Create a Cloud SSA

Page 23: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

Cloud SSA PS$SSADB = "SharePoint_Demo_Search"$SSAName = "Search Service Application SPS Baltimore"$SVCAcct = "mcm\sp_search"$SSI = get-spenterprisesearchserviceinstance -local

#1. Start the search services for SSIStart-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 ComponentSet-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 $hostApp1New-SPEnterpriseSearchCrawlComponent -SearchTopology $Topology -SearchServiceInstance $hostApp1New-SPEnterpriseSearchContentProcessingComponent -SearchTopology $Topology -SearchServiceInstance $hostApp1New-SPEnterpriseSearchAnalyticsProcessingComponent -SearchTopology $Topology -SearchServiceInstance $hostApp1New-SPEnterpriseSearchQueryProcessingComponent -SearchTopology $Topology -SearchServiceInstance $hostApp1New-SPEnterpriseSearchIndexComponent -SearchTopology $Topology -SearchServiceInstance $hostApp1 –IndexPartition 0

#8. Create the topology$Topology | Set-SPEnterpriseSearchTopology

Page 24: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

Cloud SSA PS

Page 25: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

Validate Cloud SSA TopologyAdd-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

Page 26: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

Validate Cloud SSA Topology

Page 27: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

• Only 1 Cloud SSA Per Farm• Multiple classic SSA can be created• Topology Scaling is still the same

Considerations

Page 28: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

• 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 PowerShell

http://go.microsoft.com/fwlink/p/?linkid=236297

Post Cloud SSA Installs

Page 29: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

• Microsoft Online Services Sign-In Assistant(get-service msoidsvc).Status

• Microsoft Azure AD PowerShellimport-module msonline –verboseimport-module msonlineextended -verbose      

Validate your installs

Page 30: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

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 CreateCloudSSA script.")] [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" -ErrorAction SilentlyContinueif ($regKey -eq $null) { $regKey = Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Office Server\16.0\Search" -ErrorAction SilentlyContinue if ($regKey -eq $null) { throw "Unable to detect SharePoint installation."

On-Boarding Process

Page 31: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

Script Provided By the Product Group4 stages:1. Get-HybridSSA2. Prepare-Environment3. Connect-SPFarmtoAAD4. Add-ServicePrincipal

On-Boarding Process

Page 32: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

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

Page 33: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

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

Page 34: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

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

Page 35: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

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

Page 36: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

Configure Content Source

Page 37: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

Example search verticals (1)

SharePoint Online

Everything Support Search

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)

Page 38: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

Example search verticals (2)

This is the default result source using Local SharePoint results but it has been renamed to «Everything» in the Search Navigation configuration.

SharePoint Online EverythingSupport Search

Page 39: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

Example search verticals (3)

The Support Search vertical only searches sites that are relevant to the Support team.

It uses Local SharePoint results plus a filter on which sites to include in the search results

Result source query:{searchTerms} (Path:»http://sp2010» OR Path:»file://fileshare» ORPath:»http://demohybrid.../../supportforum»)

SharePoint Online Everything Support Search

Page 40: SharePoint 2016 Search

SharePoint Saturday Montréal#SPSMontreal

Ce soir à 17h636 Cathcart