0

需要使用 Google App Engine 文本搜索按月而不是完整日期值(例如生日)过滤实体。在验证 GAE 文档时,我认为不可能直接按月查询日期字段。

因此,为了按月/日期过滤它们,我们考虑将每个日期子值(如 Date(DD)、Month(MM) 和 Year(YYYY))保存为单独的 NUMBER 字段以及完整的日期字段。

我在本地验证了我们可以通过这样的保存来实现。但是,当我们要查询日期子值时,这是通过拆分每个字段来保存日期的正确方法吗?

除了 GAE 文本搜索中的 10GB 大小限制之外,每个文档的字段数是否有任何已知/未知限制?

请给我建议。

谢谢,纳雷什

4

1 回答 1

0

唯一有意义的 NUMBER 或 DATE 字段是您需要查询值的范围。在其他情况下,它们是浪费的。

我无法从您的问题中确切知道您要运行哪些查询。您是否正在寻找一个月中的(单个)特定日期(例如,任何一年的 1 月 6 日)?还是只是“六月的任何事情(再次,不考虑年份)”?或者它是一个日期范围:比如 1 月 20 日到 2 月 19 日?还是从 7 月 1 日到 9 月 30 日?

如果它是一个范围,那么 NUMBER 值可能是有意义的。但是,如果它只是一个特定的月份,或者一个月份和月份的组合,那么最好将月份和日期存储为单独的 ATOM 字段。

任何看起来像数字但实际上不会通过数字范围搜索或进行算术运算的东西都不是真正的数字,最好将其存储为 ATOM。例如,电话号码、邮政编码(除非你非常聪明并且想做类似“旧金山的所有邮政编码看起来像 941xx”之类的事情——但即使那样,如果你想要这样做,你可能会更好关闭只是将“941”前缀存储为 ATOM)。

于 2016-06-25T22:01:22.047 回答