在 DynamoDB 中搜索数据或使用搜索服务

Mar*_*ark 0 solr elasticsearch amazon-dynamodb

我想知道尝试搜索数据的利弊(基本上是对一组有限的字段进行全文搜索)。

我的数据目前在 DynamoDB 中,我意识到这不太适合全文搜索。有没有办法在 DynamoDB 中进行全文搜索?这样做有什么好处和坏处?

我还可以使用搜索集群(如 ElasticSearch)。您不使用搜索集群的任何原因?

还有其他方法可以进行全文搜索吗?其他解决方案?

bes*_*hes 5

Dynamodb 最适合键值插入和检索。

它不支持搜索功能,如果您尝试使用 O(n) 的某些条件进行扫描,并且由于消耗大量读取容量,这将非常昂贵。

现在来到选项

  1. 如果用例不是全文搜索并且只有键值匹配,您可以尝试提出复合键,但它会有一些缺点,例如

    一种。之后无法更改架构,如果您需要搜索新字段,可能需要付出巨大的努力。

    湾 考虑到很少的键总是热的,并且可能导致热分区,设计这种键是很棘手的。

  2. 理想的解决方案是使用弹性搜索或 solr 索引。您可以使用 lambda 函数来监听 dynamodb 流,进行转换并将数据放入 elasticsearch。但它会有一些限制,比如

    一种。Elasticsearch 集群成本高昂