GraphQL 与 Elasticsearch 我应该使用什么来实现 return 具有许多不同模式的快速搜索性能?

GraphQL vs Elasticsearch what should i use for fast searching performance that return with many different schema?

我正在进行实时搜索,它将指示搜索字符串中的正确模式。然后它将使用此模式和 return 动态搜索正确的数据库模式。 例如:Google 助理

如果你将 GraphQL 与 ElasticSearch 进行比较,那么你就是在将苹果与橙子进行比较。它们是完全不同的技术。

GraphQL 是 API 层技术,与 REST 相比。它主要定义了基于 API 的 HTTP 的 request/response 格式和结构。帮助您高效存储和查询数据的不是另一个NoSQL。

如果你使用的是GraphQL,你还是需要自己去查询数据,这些数据实际存储的可能来自NoSQL, SQL DB, ElasticSearch 或者其他web service或者巴拉巴拉。 GraphQL 不关心你把数据存储在哪里,数据甚至可以存储在多个数据源。他在乎的是你告诉他如何获取数据。

回到您的案例,您很可能可以使用 ElasticSearch 来高效地存储和搜索数据。并将 GraphQL 放在 ElasticSearch 前面,这样 users/developers 通过 GraphQL API 与服务交互,以便享受 GraphQL benefits.

这取决于用例。

最近我意识到我可以使用 GraphQL 代替 Elasticsearch 进行搜索(仅针对此用例),关于 运行 两种服务的成本,一种是 GraphQL 从中读取,另一种是 Elasticsearch。

总而言之,您可以使用这两种技术,因为您可能会在不同的用例中需要它们。