使用 NodeJS 上的 ElasticSearch 提高应用程序性能

Increase app performances with ElasticSearch on NodeJS

我没有找到我要找的东西,也没有人解释我,所以我在这里问。希望这不是重复的……

我有一个 运行 在 NodeJS 上使用 ORM sequelize 和 MySQL 数据库的应用程序。项目开始于一年前。

我现在想提高性能等,安装 ElasticSearch。但我不确定我是否可以。

我可以只告诉我的 elasticserver 我的数据库在哪里,神奇的是,它单独进行映射吗? 或者我必须在 elasticSearch 上插入我的数据吗?

我所有的基础设施都托管在 AWS 上,我使用的是 RDS。可能会有帮助吗? 事实上,我不知道将 elasticSearch 层放在哪里?你有什么想法可以帮助我。

因为,我已经使用过 Symfony 和 FosElasticaBundle,但它工作得很好,我不知道如何。

更新:

  • 你可以使用 ES http api
  • 你数据库中的现有数据可以批量索引
  • 你必须处理数据库中的变化,所以你可以使用观察模式,比如created()、saved()、deleted(),这样你就可以在这些方法中处理ES的创建、更新操作或删除文档

Elasticsearch (ES) 是一个速度机器,有很多可能性(高级查询、统计等),而不是数据库(阅读这里的原因:https://www.elastic.co/blog/found-elasticsearch-as-nosql)。

  • 它是分布式的(可以 work/share 通过多个服务器工作)
  • 它是基于文档的(json 文档,例如具有嵌套的 parent/child 关系)
  • 它是基于映射的
  • 它是基于索引的

更多信息:https://www.elastic.co/products/elasticsearch

您可以在 ES 中使用类型(例如数据库中的表)。

ES 使用基于映射的索引数据。因此,您仍然需要一个数据库并将数据(非规范化)索引到 ES。您可以查询、过滤、聚合、分析索引中的数据。