Mysql 使用ElasticSeach作为部分my DB的主要源
我已经看到了许多与此主题类似的问题(讨论了ElasticSearch版本6如何克服其作为主要数据存储的许多限制),但我仍然不清楚以下几点: 我正在创建一个在线购物网站,我正在使用MySQL作为我的数据库 这是my DB的简化版(用户可以在网站上发布产品进行销售) 我正在学习,我想用它来搜索我的网站上的产品。我不需要搜索用户和ProductReview—只搜索产品表 我可以想出两种解决方案来实现这一点:Mysql 使用ElasticSeach作为部分my DB的主要源,mysql,
elasticsearch,Mysql,
elasticsearch,我已经看到了许多与此主题类似的问题(讨论了ElasticSearch版本6如何克服其作为主要数据存储的许多限制),但我仍然不清楚以下几点: 我正在创建一个在线购物网站,我正在使用MySQL作为我的数据库 这是my DB的简化版(用户可以在网站上发布产品进行销售) 我正在学习,我想用它来搜索我的网站上的产品。我不需要搜索用户和ProductReview—只搜索产品表 我可以想出两种解决方案来实现这一点: 定期将产品表从MySQL复制到ES 在MySQL中保存用户和ProductReview,在E
- ES作为数据的主要来源是否可靠李>
- 在某个时候,如果我必须修改产品表结构,我是否能够在不删除和重新创建产品索引的情况下进行修改
- 对于MySQL,我通常会备份Prod DB并在测试DB上恢复它。。。是否仍然可以使用ES从Prod到测试执行备份和恢复
我没有ES/NoSQL方面的经验,希望得到任何建议。首先让我说明Elasticsearch不是严格意义上的数据库,最好不要这样使用。然而,没有什么能阻止你这么做(很多人都在这么做),据Elastic的好朋友说,他们永远不会努力尝试让ES成为一个真正的数据库。ES的主要目标是成为一个快速可靠的搜索和分析引擎 如果可以的话,你应该始终保持另一个主要的真相来源,从中你可以很容易地(重新)构建你的ES指数,如果事情变得不好的话 在您的情况下,选项1似乎是一种选择,因为您只想让用户搜索您的产品,所以在ES中同步其他表没有任何意义 选项2听起来很吸引人,但前提是您决定只使用ES,如果您想依赖事务(ES没有事务支持),则不应该使用ES。您需要知道的另一件事是,如果您只有ES中的数据,并且您的索引由于某种原因(在升级过程中,ES中出现错误,代码中出现错误等)而损坏,那么您的数据将丢失,您的业务将受到影响 因此,要更准确地回答您的问题:
让我首先说明Elasticsearch不是一个严格意义上的数据库,最好不要这样使用。然而,没有什么能阻止你这么做(很多人都在这么做),据Elastic的好朋友说,他们永远不会努力尝试让ES成为一个真正的数据库。ES的主要目标是成为一个快速可靠的搜索和分析引擎 如果可以的话,你应该始终保持另一个主要的真相来源,从中你可以很容易地(重新)构建你的ES指数,如果事情变得不好的话 在您的情况下,选项1似乎是一种选择,因为您只想让用户搜索您的产品,所以在ES中同步其他表没有任何意义 选项2听起来很吸引人,但前提是您决定只使用ES,如果您想依赖事务(ES没有事务支持),则不应该使用ES。您需要知道的另一件事是,如果您只有ES中的数据,并且您的索引由于某种原因(在升级过程中,ES中出现错误,代码中出现错误等)而损坏,那么您的数据将丢失,您的业务将受到影响 因此,要更准确地回答您的问题:
有很多方法可以解决这个问题。。。这就是我最后做的:
我选择了选项1并构建了一个同步器,定期将我的产品复制到Elasticsearch。其实很简单。。。我实现了这里解释的方法:使用有很多方法可以解决这个问题。。。这是什么