Connect SmartHub to the Amazon Kendra Search Engine
Note: Search engines in SmartHub are often referred to as "backends." Consider these terms interchangeable.
Prerequisites
- An Amazon Kendra index populated with documents
- A set of IAM Access Keys (access key and secret) that can be used to access the AWS Kendra index
Limitations
- As Amazon Kendra doesn't support the XRANK operator, the following features are unsupported:
- Relevancy tuning
- Other boosting-based functionalities
- By default, Amazon Kendra can display up to 10 facet values per facet for a query.
- If you want to increase this limit, contact Amazon Kendra support. For more details, see https://docs.aws.amazon.com/kendra/latest/dg/API_Facet.html.
- If you have your limit increased, you must configure the MaxRefinersLimits setting in the AWS Kendra Translator Stage.
- Amazon Kendra doesn't provide an actual document ranking, instead it provides a relative ranking that indicates how confident Amazon Kendra is that the response matches the query. Therefore, the valid values for ScoreConfidence are: VERY_HIGH | HIGH | MEDIUM | LOW | NOT_AVAILABLE.
- SmartHub assigns the threshold values as follows:
- VERY_HIGH - 1.0
- HIGH - 0.7
- MEDIUM - 0.4
- LOW - 0.1
- NOT_AVAILABLE - 0
- SmartHub assigns the threshold values as follows:
- SmartHub supports the following Amazon Kendra result types:
- Document
- Answer
- Question_Answer
How to Create and Configure Your Kendra Search Engine
After you satisfy the prerequisites listed above, use the following steps to create and configure an Amazon Kendra search engine.
- Navigate to the SmartHub Administration page at http(s)://[web-app-url]/_admin.
- For example: http://smarthub.azurewebsites.net/_admin.
- For example: http://smarthub.azurewebsites.net/_admin.
- Go to the General Settings page.
- Click the ADD SEARCH ENGINE link to add your new Amazon Kendra search engine.
- In the modal window add the corresponding information in the appropriate fields:
- Type: Select Regular.
- Search Engine: Select Amazon Kendra from the drop-down list.
- Name: Enter a name for your search engine.
Rank offset formula coefficients(optional): Enter these values only if you selected the Rank Based mixing algorithm that is set in the Additional Settings page:
BOOST: Enter the boost factor.
OFFSET: Enter the rank offset.
- Index name: The name of the AWS Kendra index to be used at search time. This name is located in the Kendra management page.
- Endpoint: the URL that is the entry point for the web service.
Access Key: The IAM Access Key to be used at search time for authorization.
This is located in the IAM management page.
- Secret Key: The IAM Secret Key to be used at search time for authorization (see screenshot above).
- Region: The Region where the AWS Kendra instance is hosted. You can find this in the Kendra management page.
Navigate to the SmartHub Administration page at http(s)://[web-app-url]/_admin.
Go to the General Settings page.
Click on your Amazon Kendra search engine
Click on AwsKendraTranslatorStage from the Query/Results Tuning sections.
Add the following code snippet to the Parameters:
Copy<configuration>
<settings>
<setting Name="MaxRefinersLimits" Value="PropertyName1,Limit1;PropertyName2,Limit2" />
</settings>
</configuration>The MaxRefinersLimits setting configures the maximum number of facet values per facet that can be requested.
It is necessary to configure only the facets that have different limits than the default one (10 values).
Provide a semicolon-delimited list of comma-separated value pairs with the following format <PropertyName1,Limit1;PropertyName2,Limit2>, where:
PropertyName is the AWS Kendra managed property name.
Limit is the maximum number of facet values per facet configured in AWS Kendra. If the limit set in MaxRefinersLimits exceeds the limit that was set in AWS Kendra, the request will fail.
For example:
<setting Name="MaxRefinersLimits" Value="_authors,100;escbase_fileextension,50" />
How to configure the Amazon Kendra Translator Stage.