KendraSearchProvider#

KendraSearchProvider implements the SearchProvider interface to allow you to use AWS Kendra to index your wiki pages and attached documents.

Requirements#

AWS Account
You will need to have an AWS Account. Follow these steps to do so.
AWS Kendra Index
To index your pages and attachments you will need to have a AWS Kendra Index and its associated AWS Kendra Datasource. You can find the index-and-datasource.yaml(info) CloudFormation stack to create the required AWS resources.
AWS Credentials
In order for JSPWiki to access your Kendra Index, you will need to configure the AWS credentials JSPWiki will use. You have several way to do that:
For a JSPWiki deployed in AWS consider using an IAM Role attached to your EC2 Instance / ECS Container, etc. You can use the jspwiki-iam-role.yaml(info) CloudFormation stack to create the required AWS resources.
For a JSPWiki deployed on-premise you can use all the normal methods (.aws/credentials, environment variables, etc.)
If you are using Docker, you can easily mount your .aws directory, i.e.
docker run -v ~/.aws:/root/.aws ...

Configuration#

Once you have created the necessary resources in AWS you must configure your JSPWiki to use the KendraSearchProvider.

To enable it you must add the following properties to your jspwiki-custom.properties file:

jspwiki.searchProvider = org.apache.wiki.search.kendra.KendraSearchProvider
jspwiki.kendra.indexName = JSPWikiIndex
jspwiki.kendra.dataSourceName = JSPWikiDataSource
BEWARE
The jspwiki.kendra.indexName and jspwiki.kendra.dataSourceName must correspond to the name of the Index and Datasource you created in the step above.

Associated JIRA issue: JSPWIKI-1146