我没有找到我要找的东西,也没有人解释我,所以我在这里问。希望这不是重复的……
我有一个在 NodeJS 上运行的应用程序,带有 ORM sequelize 和一个 MySQL 数据库。该项目在一年前开始。
我现在想提高性能等,安装 ElasticSearch。但我不确定我是否可以。
我可以只告诉我的弹性服务器我的数据库在哪里,神奇的是,它单独进行映射吗? 或者我必须在 elasticSearch 上插入我的数据吗?
我所有的基础设施都托管在 AWS 上,我使用的是 RDS。可能会有帮助吗? 事实上,我不知道将 elasticSearch 层放在哪里?你有什么想法可以帮助我。
因为,我已经使用过 Symfony 和 FosElasticaBundle,但它工作得很好,我不知道如何。
最佳答案
更新:
- 你可以使用 ES http api
- 您数据库中的现有数据可以批量索引吗
- 您必须处理数据库中的更改,因此您可以使用观察模式,例如 created()、saved()、deleted(),因此您可以在这些方法中处理创建、更新或删除的 ES 操作一份文件
Elasticsearch (ES) 是一台具有多种可能性(高级查询、统计等)的速度机器,而不是数据库(阅读此处的原因:https://www.elastic.co/blog/found-elasticsearch-as-nosql)。
- 它是分布式的(可以通过多个服务器工作/共享工作)
- 它是基于文档的(json 文档,例如具有嵌套的父/子关系)
- 它是基于映射的
- 它是基于索引的
更多信息:https://www.elastic.co/products/elasticsearch
您可以在 ES 中使用类型(就像数据库中的表)。
ES 基于映射使用索引数据。因此,您仍然需要一个数据库并将数据(非规范化)索引到 ES。您可以查询、过滤、聚合、分析索引中的数据。
关于mysql - 使用 NodeJS 上的 ElasticSearch 提高应用程序性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35021832/