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