【发布时间】:2020-07-22 07:40:06
【问题描述】:
我正在尝试创建一个小型应用程序,该应用程序根据 Elasticsearch (在 AWS 托管的 Elasticsearch 服务上)索引的数据显示一些简单的可视化。
因为据我所知,AWS 对其 ES 服务提供的访问控制程度是基于允许特定的 HTTP 动词(GET、POST 等)来简化我和 ES 管理员的生活,我' m 授予此应用“只读”权限,因此只有 GET 和 HEAD。
然而,我看到对于它的搜索 API,ES 公开了一个与查询字符串参数一起使用的 GET 端点,以及一个与基于 JSON 的“查询 DSL”一起使用的 POST 端点。在我在网上和书中看到的所有示例中,这种 DSL 似乎是首选方法。
鉴于 Query DSL 在整个文档中占主导地位,我想知道:
- Query DSL 是否提供标准查询字符串参数不提供的功能,或者它们在功能上是否相同?
- POST 搜索端点是否会导致任何数据实际被 POST,或者这只是一种解决方法,允许将 JSON 作为查询发送,这与 REST 约定有些不同?
【问题讨论】:
-
这并不能直接回答您的问题,但可能值得注意的是,AWS 现在为他们的 Elasticsearch 提供了Fine-grained Access Control,这允许比简单地通过 HTTP 方法进行更精细的授权。