What is @aws-sdk/client-kendra?
@aws-sdk/client-kendra is an AWS SDK for JavaScript package that allows developers to interact with Amazon Kendra, a highly accurate and easy-to-use enterprise search service powered by machine learning. This package provides methods to create, manage, and query indexes, data sources, and other resources within Amazon Kendra.
What are @aws-sdk/client-kendra's main functionalities?
Create Index
This feature allows you to create a new index in Amazon Kendra. The code sample demonstrates how to use the CreateIndexCommand to create an index with a specified name, role ARN, and edition.
const { KendraClient, CreateIndexCommand } = require('@aws-sdk/client-kendra');
const client = new KendraClient({ region: 'us-west-2' });
const params = {
Name: 'MyIndex',
RoleArn: 'arn:aws:iam::123456789012:role/service-role/AmazonKendra-role',
Edition: 'DEVELOPER_EDITION'
};
const run = async () => {
try {
const data = await client.send(new CreateIndexCommand(params));
console.log('Index created:', data);
} catch (err) {
console.error('Error creating index:', err);
}
};
run();
Query Index
This feature allows you to query an existing index in Amazon Kendra. The code sample demonstrates how to use the QueryCommand to search an index using a specified query text.
const { KendraClient, QueryCommand } = require('@aws-sdk/client-kendra');
const client = new KendraClient({ region: 'us-west-2' });
const params = {
IndexId: 'index-id',
QueryText: 'search query'
};
const run = async () => {
try {
const data = await client.send(new QueryCommand(params));
console.log('Query results:', data);
} catch (err) {
console.error('Error querying index:', err);
}
};
run();
List Data Sources
This feature allows you to list all data sources associated with a specific index in Amazon Kendra. The code sample demonstrates how to use the ListDataSourcesCommand to retrieve and display the data sources.
const { KendraClient, ListDataSourcesCommand } = require('@aws-sdk/client-kendra');
const client = new KendraClient({ region: 'us-west-2' });
const params = {
IndexId: 'index-id'
};
const run = async () => {
try {
const data = await client.send(new ListDataSourcesCommand(params));
console.log('Data sources:', data);
} catch (err) {
console.error('Error listing data sources:', err);
}
};
run();
Other packages similar to @aws-sdk/client-kendra
elasticsearch
The 'elasticsearch' npm package is a client for Elasticsearch, a distributed, RESTful search and analytics engine. It provides similar functionalities for creating and managing indexes, querying data, and handling data sources. However, Elasticsearch is a self-managed service, whereas Amazon Kendra is a fully managed service provided by AWS.
algoliasearch
The 'algoliasearch' npm package is a client for Algolia, a hosted search engine capable of delivering real-time results from the first keystroke. It offers functionalities for managing indexes and querying data similar to Amazon Kendra. Algolia is known for its speed and ease of integration, but it is a third-party service compared to the AWS-native Kendra.
typesense
The 'typesense' npm package is a client for Typesense, an open-source, typo-tolerant search engine optimized for instant search experiences. It provides similar functionalities for managing and querying indexes. Typesense is self-hosted and offers a different set of features and performance characteristics compared to the fully managed Amazon Kendra.
@aws-sdk/client-kendra
Description
AWS SDK for JavaScript Kendra Client for Node.js, Browser and React Native.
Amazon Kendra is a service for indexing large document sets.
Installing
To install this package, simply type add or install @aws-sdk/client-kendra
using your favorite package manager:
npm install @aws-sdk/client-kendra
yarn add @aws-sdk/client-kendra
pnpm add @aws-sdk/client-kendra
Getting Started
Import
The AWS SDK is modulized by clients and commands.
To send a request, you only need to import the KendraClient
and
the commands you need, for example ListIndicesCommand
:
const { KendraClient, ListIndicesCommand } = require("@aws-sdk/client-kendra");
import { KendraClient, ListIndicesCommand } from "@aws-sdk/client-kendra";
Usage
To send a request, you:
- Initiate client with configuration (e.g. credentials, region).
- Initiate command with input parameters.
- Call
send
operation on client with command object as input. - If you are using a custom http handler, you may call
destroy()
to close open connections.
const client = new KendraClient({ region: "REGION" });
const params = {
};
const command = new ListIndicesCommand(params);
Async/await
We recommend using await
operator to wait for the promise returned by send operation as follows:
try {
const data = await client.send(command);
} catch (error) {
} finally {
}
Async-await is clean, concise, intuitive, easy to debug and has better error handling
as compared to using Promise chains or callbacks.
Promises
You can also use Promise chaining
to execute send operation.
client.send(command).then(
(data) => {
},
(error) => {
}
);
Promises can also be called using .catch()
and .finally()
as follows:
client
.send(command)
.then((data) => {
})
.catch((error) => {
})
.finally(() => {
});
Callbacks
We do not recommend using callbacks because of callback hell,
but they are supported by the send operation.
client.send(command, (err, data) => {
});
v2 compatible style
The client can also send requests using v2 compatible style.
However, it results in a bigger bundle size and may be dropped in next major version. More details in the blog post
on modular packages in AWS SDK for JavaScript
import * as AWS from "@aws-sdk/client-kendra";
const client = new AWS.Kendra({ region: "REGION" });
try {
const data = await client.listIndices(params);
} catch (error) {
}
client
.listIndices(params)
.then((data) => {
})
.catch((error) => {
});
client.listIndices(params, (err, data) => {
});
Troubleshooting
When the service returns an exception, the error will include the exception information,
as well as response metadata (e.g. request id).
try {
const data = await client.send(command);
} catch (error) {
const { requestId, cfId, extendedRequestId } = error.$metadata;
console.log({ requestId, cfId, extendedRequestId });
}
Getting Help
Please use these community resources for getting help.
We use the GitHub issues for tracking bugs and feature requests, but have limited bandwidth to address them.
To test your universal JavaScript code in Node.js, browser and react-native environments,
visit our code samples repo.
Contributing
This client code is generated automatically. Any modifications will be overwritten the next time the @aws-sdk/client-kendra
package is updated.
To contribute to client you can check our generate clients scripts.
License
This SDK is distributed under the
Apache License, Version 2.0,
see LICENSE for more information.
Client Commands (Operations List)
AssociateEntitiesToExperience
Command API Reference / Input / Output
AssociatePersonasToEntities
Command API Reference / Input / Output
BatchDeleteDocument
Command API Reference / Input / Output
BatchDeleteFeaturedResultsSet
Command API Reference / Input / Output
BatchGetDocumentStatus
Command API Reference / Input / Output
BatchPutDocument
Command API Reference / Input / Output
ClearQuerySuggestions
Command API Reference / Input / Output
CreateAccessControlConfiguration
Command API Reference / Input / Output
CreateDataSource
Command API Reference / Input / Output
CreateExperience
Command API Reference / Input / Output
CreateFaq
Command API Reference / Input / Output
CreateFeaturedResultsSet
Command API Reference / Input / Output
CreateIndex
Command API Reference / Input / Output
CreateQuerySuggestionsBlockList
Command API Reference / Input / Output
CreateThesaurus
Command API Reference / Input / Output
DeleteAccessControlConfiguration
Command API Reference / Input / Output
DeleteDataSource
Command API Reference / Input / Output
DeleteExperience
Command API Reference / Input / Output
DeleteFaq
Command API Reference / Input / Output
DeleteIndex
Command API Reference / Input / Output
DeletePrincipalMapping
Command API Reference / Input / Output
DeleteQuerySuggestionsBlockList
Command API Reference / Input / Output
DeleteThesaurus
Command API Reference / Input / Output
DescribeAccessControlConfiguration
Command API Reference / Input / Output
DescribeDataSource
Command API Reference / Input / Output
DescribeExperience
Command API Reference / Input / Output
DescribeFaq
Command API Reference / Input / Output
DescribeFeaturedResultsSet
Command API Reference / Input / Output
DescribeIndex
Command API Reference / Input / Output
DescribePrincipalMapping
Command API Reference / Input / Output
DescribeQuerySuggestionsBlockList
Command API Reference / Input / Output
DescribeQuerySuggestionsConfig
Command API Reference / Input / Output
DescribeThesaurus
Command API Reference / Input / Output
DisassociateEntitiesFromExperience
Command API Reference / Input / Output
DisassociatePersonasFromEntities
Command API Reference / Input / Output
GetQuerySuggestions
Command API Reference / Input / Output
GetSnapshots
Command API Reference / Input / Output
ListAccessControlConfigurations
Command API Reference / Input / Output
ListDataSources
Command API Reference / Input / Output
ListDataSourceSyncJobs
Command API Reference / Input / Output
ListEntityPersonas
Command API Reference / Input / Output
ListExperienceEntities
Command API Reference / Input / Output
ListExperiences
Command API Reference / Input / Output
ListFaqs
Command API Reference / Input / Output
ListFeaturedResultsSets
Command API Reference / Input / Output
ListGroupsOlderThanOrderingId
Command API Reference / Input / Output
ListIndices
Command API Reference / Input / Output
ListQuerySuggestionsBlockLists
Command API Reference / Input / Output
ListTagsForResource
Command API Reference / Input / Output
ListThesauri
Command API Reference / Input / Output
PutPrincipalMapping
Command API Reference / Input / Output
Query
Command API Reference / Input / Output
Retrieve
Command API Reference / Input / Output
StartDataSourceSyncJob
Command API Reference / Input / Output
StopDataSourceSyncJob
Command API Reference / Input / Output
SubmitFeedback
Command API Reference / Input / Output
TagResource
Command API Reference / Input / Output
UntagResource
Command API Reference / Input / Output
UpdateAccessControlConfiguration
Command API Reference / Input / Output
UpdateDataSource
Command API Reference / Input / Output
UpdateExperience
Command API Reference / Input / Output
UpdateFeaturedResultsSet
Command API Reference / Input / Output
UpdateIndex
Command API Reference / Input / Output
UpdateQuerySuggestionsBlockList
Command API Reference / Input / Output
UpdateQuerySuggestionsConfig
Command API Reference / Input / Output
UpdateThesaurus
Command API Reference / Input / Output