【问题标题】:AWS CloudSearch Java APIAWS CloudSearch Java API
【发布时间】:2014-04-15 03:15:42
【问题描述】:

我们在 AWS 云中使用 EC2 和 RDS(MySQL)。计划使用 Amazon CloudSearch 进行全文搜索。看起来,每当我们在 MySQL 中添加新行时,我们都需要将数据发送到 CloudSearch。它是一种使 CloudSearch 与 RDS 保持同步的 2 操作。一个向 RDS 添加一行,第二个操作向 CloudSearch 添加相同的数据(当然以不同的格式)。如果有其他好的方法,请建议我。

谢谢, 巴斯卡尔.S

【问题讨论】:

  • 您找到解决问题的好方法了吗?

标签: amazon-web-services amazon-cloudsearch


【解决方案1】:

虽然没有现成的工具来确保 RDS 数据库和 cloudsearch 索引之间的持续同步,但问题通常可以通过将您自己的代码添加到更新/删除/创建函数中来解决。我在基于 ruby​​ 的网络应用中使用了这种方法。

假设您有一个类可以处理将新文档添加到索引、更新文档和删除文档。您的方法应该如下:

  1. 成功创建新行后,调用同时创建新文档的函数。这会在完成时由 cloudsearch 自动编入索引。

  2. 当您更新行并对同样存在于 cloudsearch 索引中的字段进行更改时,请调用更新相应文档的函数。

  3. 同样删除一行,调用从索引中删除文档的函数。

【讨论】:

  • 一切都很好,当它添加到数据库中但随后无法添加到 cloudsearch 时会发生什么?
  • 您可以将逻辑包装在相同的函数/方法中。如果 cloudsearch 更新不起作用,请撤消数据库更改。
【解决方案2】:

Nikhil 已经完成了一半。在您的数据是 CRUD 的代码中,您将类似的调用添加到 cloudsearch,但是这两个语句都需要包装在事务上下文中。这基本上可以确保如果一个失败,他们都会失败。没有这个,你永远无法保证同步。

Spring 和 Rails 等框架提供了此功能,但您尚未说明您使用的是什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多