Introduction
Microsoft Search shows the content that your organization has stored in Microsoft 365 Tenant or indexed through connectors.
Microsoft Graph connectors can index third-party data to appear in Microsoft Search results. The third-party data can be hosted on-premises or in the public or private clouds. Connectors expand the types of content sources that are searchable in your Microsoft 365 productivity apps and the broader Microsoft ecosystem.
In this article, Let's understand how to index "Azure SQL" data using Graph Connector into Microsoft Search Results.
License requirements
To view data from connectors in your search results, users must have one of the following Microsoft 365 or Office 365 subscriptions:
- Microsoft 365 or Office 365 Enterprise E3 or E5
- Microsoft 365 or Office 365 Education A3 or A5
Let's start with the configuration steps.
Step 1 - Navigate to Connectors
- Go to Microsoft 365 admin center.
- In the navigation pane, go to Settings.
- Select > Microsoft Search.
- Select > Connectors
- Select > + Add
Step 2 - Select Azure SQL as a data source
Microsoft has seven connectors available to connect with external data sources and several partners released connectors to connect with an external data source.
Step 3 - Fill connection name details
- Name (mandatory)
- Connection Id (mandatory)
- Description (Optional)
Step 4 - Configure Database settings
- I already have Azure SQL in place, So I used the same to connect
- Server > Azure SQL Server Name
- Database > Azure SQL Database name
- Credentials -> Basic (for this article purpose)
- Click the Test Connection, On succeed > click next.
Step 5 - Configure Full Crawl Setting
Navigate to the Azure SQL Database table and create a SQL query, which will be used to get data. The full crawl selects all the columns or properties you want to be made queryable, searchable, or retrievable
Importance of watermark
To prevent overloading the database, the connector batches and resumes full-crawl queries with a full-crawl watermark column. By using the value of the watermark column, each subsequent batch is fetched, and querying is resumed from the last checkpoint. Essentially this is a mechanism to control data refresh for full crawls.
Example:
WHERE (FlightId> @watermark). watermark column name with the reserved keyword @watermark. If the sort order of the watermark column is ascending, use >; otherwise, use <.
ORDER BY CreatedDateTime ASC. Sort on the watermark column in ascending or descending order.
Step 6 - Configure Incremental Crawl Setting
With this query, the SQL connector determines any changes to the data since the last incremental crawl. As in the full crawl, select all columns that you want to be made queryable, searchable, or retrievable. Specify the same set of ACL columns that you specified in the full crawl query.
Step 7 - Configure Incremental Crawl Setting
You can choose which column can be set as Querable, Searchable & Retrieve, It is standard schema configuration as SharePoint Search.
Step 8 - Manage Search Permission
You can choose to use the ACLs specified in the full crawl screen or you can override them to make your content visible to everyone
Step 9 - Content Refresh Settings
You can configure the incremental and full refresh interval.
Step 10 - Review connection and complete
All defined configurations can be reviewed and modified here. Once it complete, click to finish to proceed.
Step 11 - Review connection and complete
Wait for a couple of minutes, connection content will full crawl and the connection state will also change from Publishing to Ready. Once the connection state will be ready, two actions need to be performed in sequence.
- Create a Result Source.
- Create a Vertical.
Step 12 - Result Type Section
Once you select create result type, It will simple steps to follow a naming convention, like enter the result type name:
Step 13 - Result Type Content Source
Select the appropriate content source so that crawled or configured data can be mapped properly.
Step 14 - Result Type Rule
Define the rules for result type is optional but you can define the filter or other criteria to exclude or include the results.
Step 15 - Design Layout
These are the important steps, how you can design your layout or adaptive rich card, which will be rendered into search results.
Once you click "Launch Layout Designer", it will navigate to https://searchlayoutdesigner.azurewebsites.net/
Step 16 - Search Layout Designer
Select a blank layout and design the required card.
Copy content from Layout Payload editor and paste into step no. 15.
Layout payload editor added to GitHub link
here
Step 17 - Review the result type settings
Review the result type configuration and proceed to Vertical creation to map with a defined result type.
Manage Vertical
Verticals make it easier for users to find the information that they have permission to see.
You can add search verticals that are relevant to your organization. These will appear on the Microsoft Search results page in SharePoint, Office, and Bing
Before you start, make sure that the connector has been indexed. This can take up to 48 hours, depending on the file size.
You can’t create a vertical for content that resides in SharePoint.
There are three basic steps to add a vertical:
- Create the vertical. In this step, you define the vertical’s name, content source, and scope of the content to search.
- Define what the results for this vertical will look like.
- Enable the vertical (to be displayed) from the vertical list page.
Step 18 - Create a Vertical
In the navigation pane, go to custom connector, and then select the Verticals Link.
To add a vertical, select Add. Or, to edit a vertical, select it in the list.
Remember, verticals are created in a disabled state. They must be enabled before users can see them
Step 19 - Connect Vertical with Content Source
Step 20 - Add Query (Optional)
You can add a KQL query, It will help to filter the result further to the result set.
Outcome
Use the Microsoft Search results page in SharePoint, Office, and Bing, Navigate to respective vertical to get external items result.
Limitations
- Indexing rich content inside database columns is not supported. Examples of such content are HTML, JSON, XML, blobs, and document parsings that exist as links inside the database columns.
I hope you have enjoyed and learned something new in this article. Thanks for reading and stay tuned for the next article.