问题标签 [amazon-elasticsearch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
113 浏览

elasticsearch - 设置可以返回来自不同数据类型的建议的 Elasticsearch 建议器

我们正在设置 Amazon Elasticsearch Service(运行 Elasticsearch 2.3 版)。

我们有不同类型的数据(我目前将其视为同一索引中的不同文档类型)。

我们在需要内联自动完成功能的应用程序中有一个通用搜索,即完成建议器返回来自所有不同数据(文档)类型的命中。那怎么设置?

查询建议者时,您必须指定一个索引,这就是我想将所有数据保存在同一个索引中的原因。根据文档,完成建议器会考虑索引中的所有文档。

为第一个文档类型设置完成建议非常简单,并且效果很好。但是,据我所知,您在查询时指定了一个建议字段。如果不是因为我们在为第二种文档类型设置映射时收到的错误消息,那就太好了:

类型:非法参数异常原因:“[建议] 被定义为映射 [name_of_document_type] 中的对象,但此名称已用于其他类型的字段”

写这个问题我发现可以在一个建议查询中指定多个建议者。也许这就是我们必须解决的问题?(即从 Y 个建议者那里得到 X 个结果,我们比较分数以获得我们想要呈现给用户的 1 个建议。)

0 投票
1 回答
369 浏览

elasticsearch - 在 Elasticsearch 中限制每种文档类型的结果

我正在使用 Elasticsearch(2.3 版)在具有多种文档类型的索引中进行搜索。我想将结果数限制为每种文档类型的前 X 个搜索命中。怎样才能做到这一点?

查询非常简单明了:

我在https://stackoverflow.com/a/27720049/467650找到了答案,但似乎自 1.4.0 版以来语法可能已经改变,因为我只收到以下错误消息:

0 投票
1 回答
986 浏览

java - 如何设置 Redisson 分布式锁的最大许可数

我有一个使用 AWS Lambda 运行的 Java 模块。这意味着可以同时运行模块的多个实例。

该模块用于访问某个 API 并从中检索数据。问题在于 API 使用了漏桶算法,该算法将 API 调用限制为 40 次,并且每 0.5 秒提供一次 API 调用。因此,我得到了一个Request limit exceeded例外。

为了解决这个问题,我决定实施分布式锁并将redisson与 AWS ElastiCache(分布式 Redis 集群)一起使用。在检查了 redisson 的文档后,我得出结论,我应该使用PermitExpirableSemaphore可以创建带有租约的锁(在我的情况下为 500 毫秒)。

问题是,我找不到将可用许可证限制为 40 个的方法。

你知道这样做的方法吗?

这是我的代码示例:

0 投票
1 回答
108 浏览

amazon-web-services - 使用“Amazon ES 进行内容推荐”是什么意思?

查看 amazon kinesis 分析的营销文献,我正在查看他们的实时日志分析流程,他们有第四步,将数据通过管道传输到 Amazon ES 以获取内容建议。

在此处输入图像描述

什么是亚马逊 ES?那是他们的弹性搜索服务吗?如果是这样,弹性搜索如何生成个性化推荐?

0 投票
1 回答
2006 浏览

python - AWS Elasticsearch Service 角色权限

我正在尝试从作为附加了 AmazonESFullAccess 策略的角色运行的 Python Lambda 脚本将文档提交到 Elasticsearch 索引。我正在使用 python elasticsearch 库创建请求,并使用 aws_requests_auth 库对它们进行签名。

然后发送批量创建请求,如下所示:

这是失败的,原因如下:

TransportError(403, u'{"message": "请求中包含的安全令牌无效。" }'): AuthorizationException ...

尽管使用管理员用户访问密钥运行时相同的代码有效。

为什么这些请求在作为具有“完全 ES 访问权限”的角色运行时会失败?

0 投票
2 回答
7491 浏览

amazon-web-services - AWS ElasticSearchService index_create_block_exception

在增加集群大小并看到 index_create_block_exception 之后,我正在尝试在 AWS ElasticSearch 集群中创建一个新索引。我该如何纠正这个问题?我尝试搜索但没有得到确切的答案。谢谢你。

0 投票
1 回答
2574 浏览

javascript - 从 node.js 创建对 AWS ES 实例的有效签名请求

我试图找到一个如何连接到 node.js 中的 AWS ES 实例的示例,然后通过一个简单的请求访问 ES 集群。

我正在尝试使用elasticsearch node package以及一个名为http-aws-es的开源插件来执行此操作。

我已将我的 aws ES 访问策略配置为如下所示:

因此,我希望能够从 ip 地址或链接到我的 aws 帐户的 IAM 用户对 es 实例发出 put 和 get 请求。

我有以下代码在 node.js 中尝试此操作:

当前返回授权错误:

我还没有看到通过在 node.js 中使用签名策略来使用 aws ES 实例的工作示例。有人有见解吗?

0 投票
1 回答
1753 浏览

amazon-web-services - 如何将 AWS RDS 与 AWS Elasticsearch 服务集成

如何将 AWS RDS 与 AWS Elasticsearch 服务集成?是否有任何 AWS 服务,以便我可以使用它将数据从 AWS RDS 流式传输到 AWS Elasticsearch 以进行索引?

0 投票
0 回答
594 浏览

java - 第一次执行操作后 Jest 客户端关闭

我创建了一个 AWS Lambda 包 (Java),其中包含一个从 Amazon S3 读取一些文件并将数据推送到 AWS ElasticSearch Service 的函数。由于我使用的是 AWS Elastic Search,因此我无法使用传输客户端,在这种情况下,我正在使用 Jest 客户端通过 REST 推送。问题在于 Jest 客户端。

这是我的 Jest 客户端实例:

由于 AWS Elasticsearch 域受 IAM 访问策略的保护,因此我签署请求以使它们获得 AWS 的授权(此处为示例)。我使用 POJO 来索引文档。

我面临的问题是我无法使用 jest 客户端实例执行多个操作。例如,如果我先创建索引:

后来,我想,例如做一些批量索引:

只有第一个动作会被执行,第二个动作会失败。这是为什么?是否可以执行多个操作?

Morover,使用提供的代码,当我想索引文档时,我无法执行超过 20 个批量操作。基本上,大约 20 个就可以了,但除此之外,client.execute(bulkIndexBuilder.build());just 不执行并且客户端关闭。

任何帮助或建议都将不胜感激。

更新:AWS ElasticSearch 似乎不允许连接到单个节点。只需在 Jest 客户端中关闭节点发现即可.discoveryEnabled(false)解决所有问题。这个答案有帮助。

0 投票
1 回答
957 浏览

amazon-web-services - AWS ElasticSearch Client SDK

Is there any AWS ElasticSearch Client SDK for Java, which signs the requests with AWS credentials? I saw this, but I guess its for managing AWS Elasticsearch Service.