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

标签 mysql node.js database elasticsearch sequelize.js

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

我有一个在 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/

相关文章:

database - 如何呈现数据库设计?

sql - 用于通配符查找的正则表达式帮助

将csv数据导入mysql的PHP脚本

sql - 如何从表(邮政编码、州、国家/地区)的一组列中搜索地址?

mysql - 为什么 SQL NOT IN() 运算符不起作用?

node.js - 以交互方式从控制台读取值

database - 是否需要数据库之外的事务行为?

mysql - 数据库组织

angularjs - 平均堆栈应用程序的 vs Code 调试

javascript - 无法在 JS 中导入自定义创建的类