【发布时间】:2012-09-04 10:38:13
【问题描述】:
我有一个相当简单的应用程序(如 CRM),它有很多联系人和相关标签。
用户可以搜索很多条件(搜索项),例如
- 最近 10 天的更新时间
- xxx 中的标签
- 标签不在 xxx 中
- first_name 以 xxx 开头
- first_name 不在“Smith”中
我了解索引以及过滤器(不在其中)如何不能对多个属性起作用。
对我来说,因为大多数时候,报告是在 cron 中完成的——我可以遍历所有记录并处理它们。但是,我想知道这样做的最佳优化路线。
我希望不是查询“ALL”,而是接近一个可以在 appengine 设计限制下运行的查询,然后手动匹配查询中的其余项目。
一种方法是从第一个搜索项开始,然后获取计数,在下一个搜索项中添加另一个,获取计数。它解决了这一点,然后我手动处理带有其余搜索项的这些记录。
问题是
- 有没有办法事先知道查询是否以编程方式有效而无需进行计数
- 如何确定集合中不发生冲突的最佳搜索项(例如 not-in 不适用于许多过滤器)等。
我看到的唯一方法是将所有相等的过滤器作为一个查询,获取第一个不相等的过滤器或输入,执行它并迭代搜索实体。
有没有图书馆可以帮助我;)
【问题讨论】: