SharePoint Search Farm Topology Diagrams

SharePoint Search Farm Topology Diagrams

Over time most search environments grow, both in amount of content and number of users. At some point the search environment outgrows the capacity and performance of your search architecture.

Tuning the SharePoint Server Farm

We are tuning a SharePoint Server Farm for better search performance today. Microsoft has a great resource with some benchmarks & best practices here:

Redesign enterprise search topology for more content and users in SharePoint.

Important questions you need to answer:

  1. How much content do I have?
  2. What size search architecture should I scale to?
  3. Which hardware requirements should I be aware of?

Know where you need to go!

Keep in mind there are some huge farms listed here. Most SharePoint implementations will fall in the small/medium farm & performance #’s will differ greatly depending on hardware. We have four app servers, two web front ends, and SQL Server on dedicated hardware. We are indexing a LAN, SharePoint Sites, and a couple enterprise applications for a total of close to 40 million documents and crawling on average about 40 documents per second. We are hoping to improve this to closer to 100 documents.

Recent Insights

Microsoft 365 Capacity: SharePoint Online & One Drive Boundaries & Limits

We’ve got two official languages in Canada: French & English. SharePoint Online Multilingual Support plays an important role in presenting the right language to the right user. In this blog post we outline the features, and some of the challenges we’ve faced in building Modern Multilingual SharePoint Online sites.

read more

Trigger a Full Crawl on SharePoint Online

Trigger a Full Crawl on SharePoint Online

Mikael Svenson wrote a cool script which will iterate all site collections, sites and sub-sites on your tenant to force a trigger of re-indexing / full crawl of all items on the next crawl.

In SharePoint Online we cannot force a full crawl via the admin user interface and thus have to iterate all sites and set a property in the property bag to accomplish the same task:

function processWeb($web) {

 $subWebs = $web.Webs
 $clientContext.Load($web) 
 $clientContext.Load($web.AllProperties)
 $clientContext.Load($subWebs)
 $clientContext.ExecuteQuery()

 Write-Host "Web URL:" $web.Url -ForegroundColor White
 if( $enableAllManagedProperties -ne "skip" ) {
 Set-AllManagedProperties -web $web -clientContext $clientContext -enableAllManagedProps $enableAllManagedProperties
 }

 [int]$version = 0
 $allProperties = $web.AllProperties
 if( $allProperties.FieldValues.ContainsKey("vti_searchversion") -eq $true ) {
 $version = $allProperties["vti_searchversion"]
 }
 $version++
 $allProperties["vti_searchversion"] = $version
 Write-Host "-- Updated search version: " $version -ForegroundColor Green
 $web.Update()
 $clientContext.ExecuteQuery()

 foreach ($subWeb in $subWebs)
 {
 processWeb($subWeb)
 }
}

This is needed for several search schema modifications, for example when you map crawled properties to managed properties.

The script also has a function to enable population of the ManagedProperties managed property for use with the SharePoint 2013 Search Query Tool v2.

You can download the script here: https://github.com/wobba/SPO-Trigger-Reindex

Recent Insights

Microsoft 365 Capacity: SharePoint Online & One Drive Boundaries & Limits

We’ve got two official languages in Canada: French & English. SharePoint Online Multilingual Support plays an important role in presenting the right language to the right user. In this blog post we outline the features, and some of the challenges we’ve faced in building Modern Multilingual SharePoint Online sites.

read more

Search Based Portals: SharePoint Architectures

Search Based Portals: SharePoint Architectures

As per TechNet, the standard cross-site publishing architecture in SharePoint 2013: Content is created in libraries and lists that are shared as catalogs in the authoring site collection(s). The search system crawls the content and builds the search index. A user views a page on a publishing site, which triggers queries from Search Web Parts and results are returned from the search index, and shown in Search Web Parts on the page.

One Authoring Site Collection, Many Publishing Site Collections (1:1,1:n)

Examples of single source search solution architectures include:

  • Data silos to be syndicated to many different sites: For example press releases may be syndicated anonymously to the public web site, intranet site, and appropriate client extranet portal. They will be authored by select few with permissions in the Press Releases site.
  • Syndicating knowledge from existing legacy / custom / enterprise applications: For example a Document Management System, Exchange, ERP or CRM tools.

Many Authoring Site Collections, One Publishing Site Collection (n:1, n:n)

Examples of multiple source search solution architectures:

  • Governance requirements dictate security trimming is critical: Rolling up reports & data from many SharePoint sites containing sensitive data.
  • Syndicating knowledge within legacy SharePoint portals to Next-Gen User Experiences: Your organization invested in SharePoint with the 2007 or 2010 release, your collaboration portals are being used, but you need a better user experience.
  • User-centered portals aggregating complex collaboration site architectures in a structured manner. Delve follows this pattern by aggregating data from all Office 365 properties that it believes are relevant to the user to build a personal UX.

Multilingual, Asset Sites and Extranets

A more practical architecture using search to syndicate intranet knowledge through a firewall to extranet / public websites.

  • Use of SharePoint Publishing Variations & Workflows to author multi lingual content into list items. Building on OOTB Strengths.
  • Syndication of content into portals for .com, .fr sites: By separating into separate site collections we have opportunity to better support each languages branding needs (EX// RTL, LTR).
  • Use of shared assets site to host all public / extranet content: We host all asset content (images, documents, etc.) on a public site collection called assets which is also available to content authors for contributions.
  • Sites exposed by domain on port 80/443 through firewall.
  • Limitation: Search does not index web parts so of limited use to authoring process.

Recent Insights

Microsoft 365 Capacity: SharePoint Online & One Drive Boundaries & Limits

We’ve got two official languages in Canada: French & English. SharePoint Online Multilingual Support plays an important role in presenting the right language to the right user. In this blog post we outline the features, and some of the challenges we’ve faced in building Modern Multilingual SharePoint Online sites.

read more

Excel Workbook with SharePoint Search Power Query

Excel Workbook with SharePoint Search Power Query

I’ve been using Power BI & SharePoint Search to aggregate and report on SharePoint project data recently. If you haven’t already read Connecting Power BI to SharePoint Search (for Managed Metadata & Aggregate List Support) it may be worth a read to get up to speed on the details of this particular power query.

I’ve been using Power BI & SharePoint Search to aggregate and report on SharePoint project data recently. If you haven’t already read Connecting Power BI to SharePoint Search (for Managed Metadata & Aggregate List Support) it may be worth a read to get up to speed on the details of this particular power query.

We’ve uploaded an Excel Workbook to GitHub containing the SharePoint Search Power Query. You’re going to need to ensure you’ve signed up for Power BI at http://www.powerbi.com and connected with your O365 tenant. You also need to download and install the most recent version of Microsoft Power Query for Excel (Workbook created with Version: 2.24.4064.242).

Download Excel Workbook with SharePoint Search Power Query from GitHub

To use this workbook, enter all parameters, click on the Power Query Ribbon Tab, click the Show Pane button, and refresh the SearchResults Data Source, click on the SearchResults worksheet. The workbook takes three parameters:

Search Keywords: You can add any search expression here, it will be appended to the SP Search REST call. As all results will be returned please make sure to constrain this to a reasonable #.

Tenant URL: Your Office 365 Tenant URL (or URL to a specific site collection). You’re going to have to authenticate using your O365 Organizational Profile as follows:

Step 1) You may first be prompted to use Anonymous authentication. As you want to protect your organizations data, select Organizational Account at the bottom of the green bar on the left.

Step 2) Organizational account should now be highlighted. Click the Sign In button to open O365 Sign-In Screen.

Step 3) Sign in with your Office 365 Credentials.

Step 4) Set the privacy level of data in this workbook to Organizational and click Save.

Metadata Properties: These are the columns you would like to return in the search results. Columns should be comma delimited with no spaces.

I hope you enjoy the workbook. With Search being a huge cornerstone in O365, I’d love to hear more about how you’re using this in your unique Office 365 Scenario (Delve,Exchange,SharePoint etc.)!

If you need any help or want a Power BI Consult to see how you can unlock the power of data within your organization please reach out!

If you are looking to have this run on Power BI Online please see the follow-up work by Paul Keijzers at Connect Power BI Online to SharePoint Search using REST.

Recent Insights

Microsoft 365 Capacity: SharePoint Online & One Drive Boundaries & Limits

We’ve got two official languages in Canada: French & English. SharePoint Online Multilingual Support plays an important role in presenting the right language to the right user. In this blog post we outline the features, and some of the challenges we’ve faced in building Modern Multilingual SharePoint Online sites.

read more