java - 执行搜索的最佳方式

标签 java performance database-performance amazon-dynamodb

<分区>

我们正在开发一款应用程序,可以对我们数据库中的产品进行搜索。我们使用的数据库是 Amazon Dynamo DB,在任何给定时间点至少会存储超过 1000 万条产品信息。

用户通过 UI 输入产品名称,我们希望在 2-3 秒内显示搜索结果。我们知道 DynamoDB 将在这次搜索中扮演主要角色,但想知道在应用程序方面是否还有其他可以做的事情。我们计划使用 Memcache 缓存搜索,以便在第二次搜索时速度更快。

还有什么我们可以实现或处理的,以便搜索速度非常快。实现在 Java 中。

提前致谢。

最佳答案

Dynamodb 没有索引的概念,所以除了主键你无法快速搜索。

您有一些主要选择:

  1. 预生成搜索结果并将搜索键存储为哈希键,将结果的 ID 存储为范围。然后在主键上获取所有搜索结果
  2. 使用另一个索引来存储所有 ID。例如云搜索
  3. 如果您希望产品名称完全匹配,请将它们存储在一个单独的表中并映射到 id

关于java - 执行搜索的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14809621/

相关文章:

html - Canvas 尺寸对性能重要吗?

java - 为什么 Maven 不编译 Guava Table 代码而 Eclipse 编译器编译? (推断类型不符合上限)

java - GWT 通过 RPC 发送类型 OBJECT

java - 匿名子类化 TimerTask 的正确方法在 run 方法中保持对 'this' 的引用

MySQL 性能 : letting a UNIQUE field generate an error or manually checking it

MySQL 响应时间定期出现峰值

sql - Postgres : Why did adding index slow down regexp queries?

java - 单击按钮时不执行方法 [JavaFX]

performance - 找到可以从 1 到 99 美分的任何零钱所需的最少硬币数

mysql - 在这种情况下,如何使 MySQL 与平面文件一样快?