KendraClient

Amazon Kendra is a service for indexing large document sets.

Installation

NPM
npm install @aws-sdk/client-kendra
Yarn
yarn add @aws-sdk/client-kendra
pnpm
pnpm add @aws-sdk/client-kendra

KendraClient Operations

Command
Summary
AssociateEntitiesToExperienceCommand

Grants users or groups in your IAM Identity Center identity source access to your Amazon Kendra experience. You can create an Amazon Kendra experience such as a search application. For more information on creating a search application experience, see Building a search experience with no code .

AssociatePersonasToEntitiesCommand

Defines the specific permissions of users or groups in your IAM Identity Center identity source with access to your Amazon Kendra experience. You can create an Amazon Kendra experience such as a search application. For more information on creating a search application experience, see Building a search experience with no code .

BatchDeleteDocumentCommand

Removes one or more documents from an index. The documents must have been added with the BatchPutDocument API.

The documents are deleted asynchronously. You can see the progress of the deletion by using Amazon Web Services CloudWatch. Any error messages related to the processing of the batch are sent to your Amazon Web Services CloudWatch log. You can also use the BatchGetDocumentStatus API to monitor the progress of deleting your documents.

Deleting documents from an index using BatchDeleteDocument could take up to an hour or more, depending on the number of documents you want to delete.

BatchDeleteFeaturedResultsSetCommand

Removes one or more sets of featured results. Features results are placed above all other results for certain queries. If there's an exact match of a query, then one or more specific documents are featured in the search results.

BatchGetDocumentStatusCommand

Returns the indexing status for one or more documents submitted with the BatchPutDocument  API.

When you use the BatchPutDocument API, documents are indexed asynchronously. You can use the BatchGetDocumentStatus API to get the current status of a list of documents so that you can determine if they have been successfully indexed.

You can also use the BatchGetDocumentStatus API to check the status of the BatchDeleteDocument  API. When a document is deleted from the index, Amazon Kendra returns NOT_FOUND as the status.

BatchPutDocumentCommand

Adds one or more documents to an index.

The BatchPutDocument API enables you to ingest inline documents or a set of documents stored in an Amazon S3 bucket. Use this API to ingest your text and unstructured text into an index, add custom attributes to the documents, and to attach an access control list to the documents added to the index.

The documents are indexed asynchronously. You can see the progress of the batch using Amazon Web Services CloudWatch. Any error messages related to processing the batch are sent to your Amazon Web Services CloudWatch log. You can also use the BatchGetDocumentStatus API to monitor the progress of indexing your documents.

For an example of ingesting inline documents using Python and Java SDKs, see Adding files directly to an index .

ClearQuerySuggestionsCommand

Clears existing query suggestions from an index.

This deletes existing suggestions only, not the queries in the query log. After you clear suggestions, Amazon Kendra learns new suggestions based on new queries added to the query log from the time you cleared suggestions. If you do not see any new suggestions, then please allow Amazon Kendra to collect enough queries to learn new suggestions.

ClearQuerySuggestions is currently not supported in the Amazon Web Services GovCloud (US-West) region.

CreateAccessControlConfigurationCommand

Creates an access configuration for your documents. This includes user and group access information for your documents. This is useful for user context filtering, where search results are filtered based on the user or their group access to documents.

You can use this to re-configure your existing document level access control without indexing all of your documents again. For example, your index contains top-secret company documents that only certain employees or users should access. One of these users leaves the company or switches to a team that should be blocked from accessing top-secret documents. The user still has access to top-secret documents because the user had access when your documents were previously indexed. You can create a specific access control configuration for the user with deny access. You can later update the access control configuration to allow access if the user returns to the company and re-joins the 'top-secret' team. You can re-configure access control for your documents as circumstances change.

To apply your access control configuration to certain documents, you call the BatchPutDocument  API with the AccessControlConfigurationId included in the Document  object. If you use an S3 bucket as a data source, you update the .metadata.json with the AccessControlConfigurationId and synchronize your data source. Amazon Kendra currently only supports access control configuration for S3 data sources and documents indexed using the BatchPutDocument API.

You can't configure access control using CreateAccessControlConfiguration for an Amazon Kendra Gen AI Enterprise Edition index. Amazon Kendra will return a ValidationException error for a Gen_AI_ENTERPRISE_EDITION index.

CreateDataSourceCommand

Creates a data source connector that you want to use with an Amazon Kendra index.

You specify a name, data source connector type and description for your data source. You also specify configuration information for the data source connector.

CreateDataSource is a synchronous operation. The operation returns 200 if the data source was successfully created. Otherwise, an exception is raised.

For an example of creating an index and data source using the Python SDK, see Getting started with Python SDK . For an example of creating an index and data source using the Java SDK, see Getting started with Java SDK .

CreateExperienceCommand

Creates an Amazon Kendra experience such as a search application. For more information on creating a search application experience, including using the Python and Java SDKs, see Building a search experience with no code .

CreateFaqCommand

Creates a set of frequently ask questions (FAQs) using a specified FAQ file stored in an Amazon S3 bucket.

Adding FAQs to an index is an asynchronous operation.

For an example of adding an FAQ to an index using Python and Java SDKs, see Using your FAQ file .

CreateFeaturedResultsSetCommand

Creates a set of featured results to display at the top of the search results page. Featured results are placed above all other results for certain queries. You map specific queries to specific documents for featuring in the results. If a query contains an exact match, then one or more specific documents are featured in the search results.

You can create up to 50 sets of featured results per index. You can request to increase this limit by contacting Support .

CreateIndexCommand

Creates an Amazon Kendra index. Index creation is an asynchronous API. To determine if index creation has completed, check the Status field returned from a call to DescribeIndex. The Status field is set to ACTIVE when the index is ready to use.

Once the index is active, you can index your documents using the BatchPutDocument API or using one of the supported data sources .

For an example of creating an index and data source using the Python SDK, see Getting started with Python SDK . For an example of creating an index and data source using the Java SDK, see Getting started with Java SDK .

CreateQuerySuggestionsBlockListCommand

Creates a block list to exlcude certain queries from suggestions.

Any query that contains words or phrases specified in the block list is blocked or filtered out from being shown as a suggestion.

You need to provide the file location of your block list text file in your S3 bucket. In your text file, enter each block word or phrase on a separate line.

For information on the current quota limits for block lists, see Quotas for Amazon Kendra .

CreateQuerySuggestionsBlockList is currently not supported in the Amazon Web Services GovCloud (US-West) region.

For an example of creating a block list for query suggestions using the Python SDK, see Query suggestions block list .

CreateThesaurusCommand

Creates a thesaurus for an index. The thesaurus contains a list of synonyms in Solr format.

For an example of adding a thesaurus file to an index, see Adding custom synonyms to an index .

DeleteAccessControlConfigurationCommand

Deletes an access control configuration that you created for your documents in an index. This includes user and group access information for your documents. This is useful for user context filtering, where search results are filtered based on the user or their group access to documents.

DeleteDataSourceCommand

Deletes an Amazon Kendra data source connector. An exception is not thrown if the data source is already being deleted. While the data source is being deleted, the Status field returned by a call to the DescribeDataSource API is set to DELETING. For more information, see Deleting Data Sources .

Deleting an entire data source or re-syncing your index after deleting specific documents from a data source could take up to an hour or more, depending on the number of documents you want to delete.

DeleteExperienceCommand

Deletes your Amazon Kendra experience such as a search application. For more information on creating a search application experience, see Building a search experience with no code .

DeleteFaqCommand

Removes a FAQ from an index.

DeleteIndexCommand

Deletes an Amazon Kendra index. An exception is not thrown if the index is already being deleted. While the index is being deleted, the Status field returned by a call to the DescribeIndex API is set to DELETING.

DeletePrincipalMappingCommand

Deletes a group so that all users that belong to the group can no longer access documents only available to that group.

For example, after deleting the group "Summer Interns", all interns who belonged to that group no longer see intern-only documents in their search results.

If you want to delete or replace users or sub groups of a group, you need to use the PutPrincipalMapping operation. For example, if a user in the group "Engineering" leaves the engineering team and another user takes their place, you provide an updated list of users or sub groups that belong to the "Engineering" group when calling PutPrincipalMapping. You can update your internal list of users or sub groups and input this list when calling PutPrincipalMapping.

DeletePrincipalMapping is currently not supported in the Amazon Web Services GovCloud (US-West) region.

DeleteQuerySuggestionsBlockListCommand

Deletes a block list used for query suggestions for an index.

A deleted block list might not take effect right away. Amazon Kendra needs to refresh the entire suggestions list to add back the queries that were previously blocked.

DeleteQuerySuggestionsBlockList is currently not supported in the Amazon Web Services GovCloud (US-West) region.

DeleteThesaurusCommand

Deletes an Amazon Kendra thesaurus.

DescribeAccessControlConfigurationCommand

Gets information about an access control configuration that you created for your documents in an index. This includes user and group access information for your documents. This is useful for user context filtering, where search results are filtered based on the user or their group access to documents.

DescribeDataSourceCommand

Gets information about an Amazon Kendra data source connector.

DescribeExperienceCommand

Gets information about your Amazon Kendra experience such as a search application. For more information on creating a search application experience, see Building a search experience with no code .

DescribeFaqCommand

Gets information about a FAQ.

DescribeFeaturedResultsSetCommand

Gets information about a set of featured results. Features results are placed above all other results for certain queries. If there's an exact match of a query, then one or more specific documents are featured in the search results.

DescribeIndexCommand

Gets information about an Amazon Kendra index.

DescribePrincipalMappingCommand

Describes the processing of PUT and DELETE actions for mapping users to their groups. This includes information on the status of actions currently processing or yet to be processed, when actions were last updated, when actions were received by Amazon Kendra, the latest action that should process and apply after other actions, and useful error messages if an action could not be processed.

DescribePrincipalMapping is currently not supported in the Amazon Web Services GovCloud (US-West) region.

DescribeQuerySuggestionsBlockListCommand

Gets information about a block list used for query suggestions for an index.

This is used to check the current settings that are applied to a block list.

DescribeQuerySuggestionsBlockList is currently not supported in the Amazon Web Services GovCloud (US-West) region.

DescribeQuerySuggestionsConfigCommand

Gets information on the settings of query suggestions for an index.

This is used to check the current settings applied to query suggestions.

DescribeQuerySuggestionsConfig is currently not supported in the Amazon Web Services GovCloud (US-West) region.

DescribeThesaurusCommand

Gets information about an Amazon Kendra thesaurus.

DisassociateEntitiesFromExperienceCommand

Prevents users or groups in your IAM Identity Center identity source from accessing your Amazon Kendra experience. You can create an Amazon Kendra experience such as a search application. For more information on creating a search application experience, see Building a search experience with no code .

DisassociatePersonasFromEntitiesCommand

Removes the specific permissions of users or groups in your IAM Identity Center identity source with access to your Amazon Kendra experience. You can create an Amazon Kendra experience such as a search application. For more information on creating a search application experience, see Building a search experience with no code .

GetQuerySuggestionsCommand

Fetches the queries that are suggested to your users.

GetQuerySuggestions is currently not supported in the Amazon Web Services GovCloud (US-West) region.

GetSnapshotsCommand

Retrieves search metrics data. The data provides a snapshot of how your users interact with your search application and how effective the application is.

ListAccessControlConfigurationsCommand

Lists one or more access control configurations for an index. This includes user and group access information for your documents. This is useful for user context filtering, where search results are filtered based on the user or their group access to documents.

ListDataSourceSyncJobsCommand

Gets statistics about synchronizing a data source connector.

ListDataSourcesCommand

Lists the data source connectors that you have created.

ListEntityPersonasCommand

Lists specific permissions of users and groups with access to your Amazon Kendra experience.

ListExperienceEntitiesCommand

Lists users or groups in your IAM Identity Center identity source that are granted access to your Amazon Kendra experience. You can create an Amazon Kendra experience such as a search application. For more information on creating a search application experience, see Building a search experience with no code .

ListExperiencesCommand

Lists one or more Amazon Kendra experiences. You can create an Amazon Kendra experience such as a search application. For more information on creating a search application experience, see Building a search experience with no code .

ListFaqsCommand

Gets a list of FAQs associated with an index.

ListFeaturedResultsSetsCommand

Lists all your sets of featured results for a given index. Features results are placed above all other results for certain queries. If there's an exact match of a query, then one or more specific documents are featured in the search results.

ListGroupsOlderThanOrderingIdCommand

Provides a list of groups that are mapped to users before a given ordering or timestamp identifier.

ListGroupsOlderThanOrderingId is currently not supported in the Amazon Web Services GovCloud (US-West) region.

ListIndicesCommand

Lists the Amazon Kendra indexes that you created.

ListQuerySuggestionsBlockListsCommand

Lists the block lists used for query suggestions for an index.

For information on the current quota limits for block lists, see Quotas for Amazon Kendra .

ListQuerySuggestionsBlockLists is currently not supported in the Amazon Web Services GovCloud (US-West) region.

ListTagsForResourceCommand

Gets a list of tags associated with a resource. Indexes, FAQs, data sources, and other resources can have tags associated with them.

ListThesauriCommand

Lists the thesauri for an index.

PutPrincipalMappingCommand

Maps users to their groups so that you only need to provide the user ID when you issue the query.

You can also map sub groups to groups. For example, the group "Company Intellectual Property Teams" includes sub groups "Research" and "Engineering". These sub groups include their own list of users or people who work in these teams. Only users who work in research and engineering, and therefore belong in the intellectual property group, can see top-secret company documents in their search results.

This is useful for user context filtering, where search results are filtered based on the user or their group access to documents. For more information, see Filtering on user context .

If more than five PUT actions for a group are currently processing, a validation exception is thrown.

QueryCommand

Searches an index given an input query.

If you are working with large language models (LLMs) or implementing retrieval augmented generation (RAG) systems, you can use Amazon Kendra's Retrieve  API, which can return longer semantically relevant passages. We recommend using the Retrieve API instead of filing a service limit increase to increase the Query API document excerpt length.

You can configure boosting or relevance tuning at the query level to override boosting at the index level, filter based on document fields/attributes and faceted search, and filter based on the user or their group access to documents. You can also include certain fields in the response that might provide useful additional information.

A query response contains three types of results.

  • Relevant suggested answers. The answers can be either a text excerpt or table excerpt. The answer can be highlighted in the excerpt.

  • Matching FAQs or questions-answer from your FAQ file.

  • Relevant documents. This result type includes an excerpt of the document with the document title. The searched terms can be highlighted in the excerpt.

You can specify that the query return only one type of result using the QueryResultTypeFilter parameter. Each query returns the 100 most relevant results. If you filter result type to only question-answers, a maximum of four results are returned. If you filter result type to only answers, a maximum of three results are returned.

If you're using an Amazon Kendra Gen AI Enterprise Edition index, you can only use ATTRIBUTE_FILTER to filter search results by user context. If you're using an Amazon Kendra Gen AI Enterprise Edition index and you try to use USER_TOKEN to configure user context policy, Amazon Kendra returns a ValidationException error.

RetrieveCommand

Retrieves relevant passages or text excerpts given an input query.

This API is similar to the Query  API. However, by default, the Query API only returns excerpt passages of up to 100 token words. With the Retrieve API, you can retrieve longer passages of up to 200 token words and up to 100 semantically relevant passages. This doesn't include question-answer or FAQ type responses from your index. The passages are text excerpts that can be semantically extracted from multiple documents and multiple parts of the same document. If in extreme cases your documents produce zero passages using the Retrieve API, you can alternatively use the Query API and its types of responses.

You can also do the following:

  • Override boosting at the index level

  • Filter based on document fields or attributes

  • Filter based on the user or their group access to documents

  • View the confidence score bucket for a retrieved passage result. The confidence bucket provides a relative ranking that indicates how confident Amazon Kendra is that the response is relevant to the query.

    Confidence score buckets are currently available only for English.

You can also include certain fields in the response that might provide useful additional information.

The Retrieve API shares the number of query capacity units  that you set for your index. For more information on what's included in a single capacity unit and the default base capacity for an index, see Adjusting capacity .

If you're using an Amazon Kendra Gen AI Enterprise Edition index, you can only use ATTRIBUTE_FILTER to filter search results by user context. If you're using an Amazon Kendra Gen AI Enterprise Edition index and you try to use USER_TOKEN to configure user context policy, Amazon Kendra returns a ValidationException error.

StartDataSourceSyncJobCommand

Starts a synchronization job for a data source connector. If a synchronization job is already in progress, Amazon Kendra returns a ResourceInUseException exception.

Re-syncing your data source with your index after modifying, adding, or deleting documents from your data source respository could take up to an hour or more, depending on the number of documents to sync.

StopDataSourceSyncJobCommand

Stops a synchronization job that is currently running. You can't stop a scheduled synchronization job.

SubmitFeedbackCommand

Enables you to provide feedback to Amazon Kendra to improve the performance of your index.

SubmitFeedback is currently not supported in the Amazon Web Services GovCloud (US-West) region.

TagResourceCommand

Adds the specified tag to the specified index, FAQ, data source, or other resource. If the tag already exists, the existing value is replaced with the new value.

UntagResourceCommand

Removes a tag from an index, FAQ, data source, or other resource.

UpdateAccessControlConfigurationCommand

Updates an access control configuration for your documents in an index. This includes user and group access information for your documents. This is useful for user context filtering, where search results are filtered based on the user or their group access to documents.

You can update an access control configuration you created without indexing all of your documents again. For example, your index contains top-secret company documents that only certain employees or users should access. You created an 'allow' access control configuration for one user who recently joined the 'top-secret' team, switching from a team with 'deny' access to top-secret documents. However, the user suddenly returns to their previous team and should no longer have access to top secret documents. You can update the access control configuration to re-configure access control for your documents as circumstances change.

You call the BatchPutDocument  API to apply the updated access control configuration, with the AccessControlConfigurationId included in the Document  object. If you use an S3 bucket as a data source, you synchronize your data source to apply the AccessControlConfigurationId in the .metadata.json file. Amazon Kendra currently only supports access control configuration for S3 data sources and documents indexed using the BatchPutDocument API.

You can't configure access control using CreateAccessControlConfiguration for an Amazon Kendra Gen AI Enterprise Edition index. Amazon Kendra will return a ValidationException error for a Gen_AI_ENTERPRISE_EDITION index.

UpdateDataSourceCommand

Updates an Amazon Kendra data source connector.

UpdateExperienceCommand

Updates your Amazon Kendra experience such as a search application. For more information on creating a search application experience, see Building a search experience with no code .

UpdateFeaturedResultsSetCommand

Updates a set of featured results. Features results are placed above all other results for certain queries. You map specific queries to specific documents for featuring in the results. If a query contains an exact match of a query, then one or more specific documents are featured in the search results.

UpdateIndexCommand

Updates an Amazon Kendra index.

UpdateQuerySuggestionsBlockListCommand

Updates a block list used for query suggestions for an index.

Updates to a block list might not take effect right away. Amazon Kendra needs to refresh the entire suggestions list to apply any updates to the block list. Other changes not related to the block list apply immediately.

If a block list is updating, then you need to wait for the first update to finish before submitting another update.

Amazon Kendra supports partial updates, so you only need to provide the fields you want to update.

UpdateQuerySuggestionsBlockList is currently not supported in the Amazon Web Services GovCloud (US-West) region.

UpdateQuerySuggestionsConfigCommand

Updates the settings of query suggestions for an index.

Amazon Kendra supports partial updates, so you only need to provide the fields you want to update.

If an update is currently processing, you need to wait for the update to finish before making another update.

Updates to query suggestions settings might not take effect right away. The time for your updated settings to take effect depends on the updates made and the number of search queries in your index.

You can still enable/disable query suggestions at any time.

UpdateQuerySuggestionsConfig is currently not supported in the Amazon Web Services GovCloud (US-West) region.

UpdateThesaurusCommand

Updates a thesaurus for an index.

KendraClient Configuration

Parameter
Type
Description
defaultsMode
Optional
DefaultsMode | Provider<DefaultsMode>
The @smithy/smithy-client#DefaultsMode that will be used to determine how certain default configuration options are resolved in the SDK.
disableHostPrefix
Optional
boolean
Disable dynamically changing the endpoint of the client based on the hostPrefix trait of an operation.
extensions
Optional
RuntimeExtension[]
Optional extensions
logger
Optional
Logger
Optional logger for logging debug/info/warn/error.
maxAttempts
Optional
number | Provider<number>
Value for how many times a request will be made at most in case of retry.
profile
Optional
string
Setting a client profile is similar to setting a value for the AWS_PROFILE environment variable. Setting a profile on a client in code only affects the single client instance, unlike AWS_PROFILE.When set, and only for environments where an AWS configuration file exists, fields configurable by this file will be retrieved from the specified profile within that file. Conflicting code configuration and environment variables will still have higher priority.For client credential resolution that involves checking the AWS configuration file, the client's profile (this value) will be used unless a different profile is set in the credential provider options.
region
Optional
string | Provider<string>
The AWS region to which this client will send requests
requestHandler
Optional
__HttpHandlerUserInput
The HTTP handler to use or its constructor options. Fetch in browser and Https in Nodejs.
retryMode
Optional
string | Provider<string>
Specifies which retry algorithm to use.
useDualstackEndpoint
Optional
boolean | Provider<boolean>
Enables IPv6/IPv4 dualstack endpoint.
useFipsEndpoint
Optional
boolean | Provider<boolean>
Enables FIPS compatible endpoints.
Additional config fields are described in the full configuration type: KendraClientConfig