【发布时间】:2011-09-28 14:24:24
【问题描述】:
我正在开发一个 Google App Engine Java 应用程序,用户可以在其中根据搜索条件从数据库中搜索业务对象。 搜索结果(记录列表)不应包含过去搜索中的任何记录(一定数量的记录,例如 100 条)。出于这个原因,我将过去的结果存储在用户配置文件中。 关于有效实现此逻辑的任何建议(不使用多个集合迭代)。我正在使用 JDO,在查询中使用“NOT IN”条件时存在限制。
【问题讨论】:
-
业务对象的总数有多大,您希望“已搜索”列表有多大?如果您不断使用已查看的搜索结果更新它们,您的 User 对象听起来会变得很大。
-
搜索结果只是对象键(不是实际的业务对象)。搜索历史记录将有 500 条搜索结果记录(仅 Keys),添加新 Keys 时旧历史记录将滚落 - 仅保留 500 个记录键。
-
每次搜索的搜索结果将限制为 200 条记录。这 200 条结果不应包括检索历史中的 500 条记录中的任何一条。感谢您的宝贵时间。
标签: java google-app-engine google-cloud-datastore jdo