diff --git a/packages/components/credentials/ElectricsearchUserPassword.credential.ts b/packages/components/credentials/ElectricsearchUserPassword.credential.ts
index 6c47f7b1828..c1ac82c1c1f 100644
--- a/packages/components/credentials/ElectricsearchUserPassword.credential.ts
+++ b/packages/components/credentials/ElectricsearchUserPassword.credential.ts
@@ -11,8 +11,8 @@ class ElasticSearchUserPassword implements INodeCredential {
this.label = 'ElasticSearch User Password'
this.name = 'elasticSearchUserPassword'
this.version = 1.0
- this.description =
- 'Refer to official guide on how to get User Password from ElasticSearch'
+ this.description = `Use Cloud ID field to enter your Elastic Cloud ID or the URL of the Elastic server instance.
+ Refer to official guide on how to get User Password from ElasticSearch.`
this.inputs = [
{
label: 'Cloud ID',
diff --git a/packages/components/nodes/vectorstores/Elasticsearch/ElasticSearchBase.ts b/packages/components/nodes/vectorstores/Elasticsearch/ElasticSearchBase.ts
index 59294b7ea1c..a1233c21553 100644
--- a/packages/components/nodes/vectorstores/Elasticsearch/ElasticSearchBase.ts
+++ b/packages/components/nodes/vectorstores/Elasticsearch/ElasticSearchBase.ts
@@ -144,13 +144,26 @@ export abstract class ElasticSearchBase {
} else if (cloudId) {
let username = getCredentialParam('username', credentialData, nodeData)
let password = getCredentialParam('password', credentialData, nodeData)
- elasticSearchClientOptions = {
- cloud: {
- id: cloudId
- },
- auth: {
- username: username,
- password: password
+ if (cloudId.startsWith('http')) {
+ elasticSearchClientOptions = {
+ node: cloudId,
+ auth: {
+ username: username,
+ password: password
+ },
+ tls: {
+ rejectUnauthorized: false
+ }
+ }
+ } else {
+ elasticSearchClientOptions = {
+ cloud: {
+ id: cloudId
+ },
+ auth: {
+ username: username,
+ password: password
+ }
}
}
}