问题标签 [aws-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.
amazon-web-services - 无法在 fs 中为 AWS elasticsearch 注册快照存储库
我正在尝试在 AWS Elasticsearch/OpenSearch 上注册一个快照存储库。我收到以下错误:"Message":"User: anonymous is not authorized to perform: iam:PassRole on resource: arn:aws:iam::$$$$$:user/Elasticsearch"}
下面是我的 curl 命令:
elasticsearch - 名称/值对列的弹性搜索查询
我们在弹性搜索中有一个文档,其中包含多个名称/值对部分,我们希望仅根据名称列值获取值。
我们预计只有 76483 作为基于名称等于UC_CORP的结果
elasticsearch - 在 AWS Elasticsearch Service 上更改 server.maxPayloadBytes
所以我有一个通过 AWS 托管的 ES 集群,其中文档网络主要是动态 JSON,没有固定映射。
当我尝试在 Kibana 上执行“创建索引模式”时,它会出错:
Error Payload content length greater than maximum allowed: 1048576
所以我需要增加server.maxPayloadBytes
(https://www.elastic.co/guide/en/kibana/current/settings.htmlkibana.yml
)
或想出另一种方式。
要增加server.maxPayloadBytes
,kibana.yml
我必须直接编辑它,但不知道该怎么做。我有集群的 VPC 端点,但我无法通过 ssh 进入它。
我在跑步
amazon-web-services - 从公有弹性集群迁移到 VPC 集群
我目前有一个公共弹性集群和一个工作正常的数据节点(m3.xlarge.elasticsearch)。我想从公共域转移到基于 VPC 的域。
我能够从公共端点获取手动快照并将其还原到 VPC 端点。
虽然迁移成功,但我目前面临搜索延迟问题,而公共端点的搜索延迟约为 0.22-0.23 毫秒,具有 2(m4.large.elasticsearch) 数据节点的 VPC 终端的搜索延迟约为 0.600- 1.5ms 取决于负载。
这会导致整个网站变慢,当连接到公共端点时,典型的页面在大约 6-7 秒内加载,而我们移动到 VPC 端点时,页面在大约 20-30 秒内加载,这与系统停机一样好。
我观察到的另一个指标是在 Newrelic 中。它将外部指标及其响应时间分组。对于公共端点,当我迁移到 VPC 时大约是 8.92 毫秒,大约是 180-230 毫秒。
这似乎是不费吹灰之力,任何人都需要做的就是从公共集群迁移到基于 VPC 的集群,当前一代节点具有更好的可用性,并且应该会带来更好的性能,但结果却并非如此。
除了上面建议的以下架构外,还尝试了以下架构
- 3 T2.Medium(数据节点)
- 3 个主节点 + 5 个数据节点。无论使用何种资源,我都会遇到相同的响应时间问题。
任何回答这种行为的建议都会很棒。让我知道是否需要更多其他信息。
谢谢 :)
amazon-web-services - AWS Elastic Search 升级 2.3 到 5.5 非法参数异常
我们最近从 aws Elasticsearch 服务 2.3 升级到 5.5,在 5.5 版本中,预签名的 URL 不起作用(适用于 2.3)。使用以下消息引发非法参数异常:无法识别的参数:[X-Amz-Algorithm]、[X-Amz-Credential]、[X-Amz-Date]、[X-Amz-Expires]、[X-Amz-Signature] , [X-Amz-SignedHeaders]。
elasticsearch - 有没有办法将属性类型定义为 ElasticSearch 数组数据类型中的关键字?
我正在索引一个大型数据集,该数据集具有特定实体的多个名称字段。我已经定义了数组类型的名称字段,并在其中添加了大约 4 个名称。一些名称之间有空格,它们正在被标记化。我可以避免吗?
我知道对于 String,我们在 Elastic 中有文本和关键字类型,但是当我将数组作为数据类型时,如何将类型定义为关键字?默认情况下,所有数组字段都被视为文本类型。我希望它们被视为关键字类型,因此它们在索引时不会被标记。
预期:如果我将“Hello World”存储在一个数组中,我应该能够搜索“Hello World”。
当前行为:它以不同的方式存储 hello 和以不同的方式存储世界,因为它标记了它。
javascript - 通过 Postman 使用 AWS4 签名进行 CRUD 弹性操作
我正在尝试使用 AWS4 签名方法将数据发布到由 AWS 管理的 Elasticsearch。我想通过邮递员预脚本来实现这一点。我尝试使用以下脚本,该脚本非常适用于 Elastic 搜索的 GET 操作,但不适用于 POST 或 PUT 或 DELETE 操作,并不断给我错误消息,指出签名与 POST 操作不匹配。有人可以帮我在邮递员中修复以下脚本吗?
java - Elasticsearch嵌套排序 - 文档和用于排序的嵌套对象之间不匹配
我一直在使用 AWS Elasticsearch(6.2 版)作为后端开发一个新的搜索 API。
现在,我正在尝试支持 API 的“排序”选项。
我的映射如下(不包括不相关的字段):
我试图允许用户按属性值(路径:)排序materialDefinitionProperties.value.valueLong.raw
。
请注意,它位于嵌套对象的 2 级内(materialDefinitionProperties 和 materialDefinitionProperties.value 是嵌套对象)。
要按 ID 为“PART NUMBER”的属性值对结果进行排序,我的排序请求是:
但是,当我检查响应时,“排序”字段与文档的属性值不匹配:
文档的 PART NUMBER 属性是“202-001193-001”,“排序”字段显示“100-000018”,这是另一个文档的部件号。
主文档和用于排序的嵌套对象之间似乎存在不匹配。
当集群中只有少量文档时,此请求运行良好。但是,一旦我用大约 100 万条记录回填集群,就会出现症状。我也尝试过创建一个新的 ES 集群,但结果是一样的。
按其他非嵌套属性排序效果很好。
我是否误解了嵌套对象的概念,或者滥用了嵌套排序功能?
任何想法表示赞赏!
elasticsearch - Elasticsearch 中的管道聚合
我正在研究 Elasticsearch 聚合,并且有一个关于如何进行管道聚合的问题。我的 ES 文档中有三个高级字段:
documentId, list1, list2
示例:这是我拥有的几份文件:
文件 1:
文件 2:
文件 3:
总结一下——
document1 和 document2 的 key1 和 key2 具有相同的一组值(除了 id 不同,因此它们被视为两个单独的文档)。
document3 的 key2 值与 document1 和 document2 中的值相同。key1 的值不同于 document1 和 document2。
我想在 list1 字段的键上运行术语聚合器,它应该作为在 list2 上完成的术语聚合的输入。
所以,对于上面的例子,我想要的整体输出是-value21:2(一个计数对应key1中的value11,第二个计数对应key1中的value12)
而NOT value21: 3(两个count对应key1中的value11,第三个count对应key1中的value12)。
有什么简单的方法可以做到这一点吗?
java - 如何使用 JestClient 为 ElasticSearch 手动调用快照端点
我已经JestClinet
在 AWS 上的 ES 上使用我的所有 CRUD 操作。现在我正在尝试按照
https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-request-signing.html中的描述对我的 ES 进行快照
而不是使用另一个RestClient
,我想知道我是否可以使用我现有的JestClient
.