Installing Discovery Search
Purpose
Discovery Search uses Microsoft® Internet Information Services (IIS) for Windows Server and Windows Authentication with Kerberos to authenticate a user from an internet browser. This guide outlines Shinydocs™ Discovery Search prerequisites, the process for installing with or without Kerberos usage, and upgrade steps.
Prerequisites
Hardware
We recommend load testing Discovery Search in a staging environment before promoting it to production, as small intricacies in an environment may have an impact on performance and end-user experience. After initial load testing, adjust your hardware based on the needs of the environment.
For example, if your CPU utilization on machines running Discovery Search is above 95% under load, you should upgrade the number of CPU cores allocated to the machine.
Performance for Discovery Search is primarily based on the performance of your Indexing Cluster. To help identify performance bottlenecks, Discovery Search can log the response times of fetching data from the index and delivering the results to the end user.
Recommendation for up to 1000 Users
CPU | 4 CPU Cores
|
Memory (RAM) | 8 GB |
Disk (storage) | Minimum 2 GB free disk space
|
Network | 1 gigabit |
Recommendation for scaling to over 1000 users
Discovery Search scales best for over 1000 users with the use of load balancing. We recommend setting up multiple Discovery Search instances behind a load balancer(s) and using your monitoring application of choice (for example, Windows Performance Monitor) to track resources.
For more information, read this IIS Best Practices article from the Microsoft Tech Community.
Load Balancing
Discovery Search works with load balancers to reroute traffic based on usage. Load balancing can be done with Azure Load Balancer or Azure Application Gateway.
As Discovery Search is hosted in IIS, we recommend following your organization’s current policy on load-balancing IIS web applications/sites. If your Discovery Search is load-balanced, we recommend setting up and configuring on one machine, then replicating to other machines to ensure a consistent experience.
Software
Discovery Search is an application that runs on Microsoft Internet Information Services (IIS).
Component | Version |
---|---|
Internet Information Services (IIS) | Windows Server 2016: IIS Version 10.0 or above Windows Server 2019: IIS Version 10.0 or above Windows Server 2022: IIS Version 10.0 or above |
Microsoft .NET Framework | 4.7.2 or higher |
Shinydocs Discovery Server | Installation files |
Shinydocs Cognitive Toolkit | Required for crawling data and creating indices |
Shinydocs Cognitive Toolkit Version 2.10* | *Version 2.10 or later is required for crawling data and creating indices from Microsoft Exchange |
IIS URL Rewrite 2.1* | 2.1 or higher Read about Microsoft URL Rewrite. *Not required for Discovery Search 1.7.0.1 or later |
Internet Information Services (IIS) Features
Before installing Discovery Search, please enable and install the following Windows Roles and Features. These can be enabled in Windows Server Manager > Add Roles and Features Wizard.
Role | Location |
---|---|
ASP | Web Server (IIS) > Web Server > Application Development Features |
ASP.NET | Web Server (IIS) > Web Server > Application Development Features |
.NET Extensibility 4.x | Web Server (IIS) > Web Server > Application Development Features |
Windows Authentication | Web Server (IIS) > Web Server > Security |
Additional Admin Panel Requirements
To ensure Admin Panel pages save successfully in Discovery Search, please ensure that IIS_IUSRS or the application pool user has write access to the following directories:
Configuration
Scripts
And the following file:
Web.config
Installing Discovery Search
Without Kerberos pass-through
Create and Configure Discovery Search Site
Extract shinydocs-discovery-search-<version>.zip to the directory where you want the application to reside
On the extracted folder, go to Properties>Security
Add IIS_IUSRS to the permissions of the folder and give full control
Ensure IIS_IUSRS or the Application Pool user has write access to the Scripts directory and the Web.config file
Open Internet Information Services (IIS) Manager
Create a new site
Name your site Discovery Search
Change the physical path to the extracted folder from Step 1
Set the port you wish to use (80 is likely taken from the default IIS site)
Click on the site in the tree
Double-click Authentication under IIS
Disable Anonymous, Basic Authentication, and Forms Authentication
Enable Windows Authentication and ASP.NET Impersonation
Within the IIS Manager, right-click on the Discovery Search site and click Explore to view the site folder structure
Access and edit the Web.config file
Change the
IndexServerUrl
key value to where the index is located and the port for it (default is 9200)[not required for versions 1.9 and later] In the
IndexName
key, add the indices you want to search, separated by a commaEnsure
SettingsEncryptionKey
is changed from “somebody change me” to a new value (for example, the best practice is a minimum of 12 characters, including letters, numbers, and special characters)For clustered systems, ensure the new
SettingsEncryptionKey
value is the same for all systems within a clusterConfirm
ActiveDirectoryAdminGroup
is configuredConfigure
SettingsIndexName
to a value if desiredFor clustered systems, ensure the
SettingsIndexName
value is the same for all systems with a clusterSave changes
Open Windows command and restart IIS and run the following command:
iisreset /noforce
Connect Discovery Search to an index
Launch a browser and open the Discovery Search site (for example, http://localhost:9200/admin)
Navigate to Roles
From the Default Role, click Edit
Select Sources Configuration
Click + Add source
Enter the name of the content source in Name
In Indices, enter the name of the index that corresponds to the specified content source in Discovery Search
Select the Language that the title will display in
Enter the Title that will represent this index throughout the Discovery Search UI
Click + Add source to add another source index to this role
Once all sources are added, save changes
Refer to Configuring Roles for more details
Each role can have different values for the above settings, as well as variances in what sources are available to each role
With Kerberos pass-through
Kerberos is a computer-network authentication protocol that works based on tickets that allow nodes to communicate over a non-secure network, to prove their identity to one another in a secure manner.
For more information on how to set up your Windows Server environment to support Shinydocs Discovery Server with Kerberos pass-through (double-hop authentication), read Setting up Kerberos authentication.