使用lucene存储索引元数据或Amazon SimpleDB

本文关键字:Amazon SimpleDB 元数据 索引 lucene 存储 使用 | 更新日期: 2023-09-27 18:18:13

我正在构建一个web解决方案,它需要上传文件并将它们放在S3上。在上传文件时,用户可以添加元数据用于索引和归档目的。我计划使用Lucene来实现这个目的,因为我之前已经使用过很多次了,但我也注意到Amazon SimpleDB为S3提供了一个对象元数据服务。

我被SimpleDB所吸引,因为它在为web应用程序服务的机器上缺乏维护和开销,以及SimpleDB在Lucene的单一位置索引文件上的分布式特性。

的要求是,用户将需要有一个ajax搜索,因为你键入web界面Lucene可以提供,但SimpleDB也可以做我将获得/失去通过使用SimpleDB索引Lucene在这个有限的范围内的应用程序?

谢谢你的知识

使用lucene存储索引元数据或Amazon SimpleDB

我使用SimpleDB来做类似的事情。除了零维护之外,其优点是SimpleDB基本上可以无限扩展。只有当您想要为可能出现的高流量进行架构设计时,这才是真正的优势。

我认为SimpleDB在这方面的主要缺点是:
  • 更高的延迟。SimpleDB是为巨大的可伸缩性和高可用性而设计的。这样做的代价是请求有一个中等的延迟——比使用Lucene这样的"本地"非分布式服务或使用RDBMS文本搜索功能要高。

  • 更不灵活的文本搜索。Simple DB基本上具有类似sql的查询语法,它支持常用的=,!=,>,<等等,也像通配符"%"可以出现在字符串的开头,字符串的结尾或两者都出现(例如:关键字"%>注意:LIKE条件以前只支持字符串末尾的"%",这个限制你可能在网上看到,但现在已经不存在了。

SimpleDB还默认使用"最终一致性"模型(更新可能需要一段时间-有时需要10秒-才能保持一致)。这是不可避免的可伸缩性的结果。然而,我怀疑这对你的用例来说会是一个问题。