【问题标题】:Google App Engine Search API, Searching DateField value before certain dateGoogle App Engine Search API,在特定日期之前搜索 DateField 值
【发布时间】:2014-05-13 17:37:32
【问题描述】:

使用 Google App Engine,使用 Search API Documents 和 Index,其中 Documents 的 DateField 名为“updated”,如何查询在 2014-05-13T00:00:00Z 之前更新的 Documents? 我试过了

query = 'updated < %s' % (mydate)

所以价值是 '更新

我的语法有问题,但我不知道对搜索 API 查询语法的任何引用。无论我在查看 c:\Program Files (x86)\Google\google_appengine\google\appengine\api\search\QueryLexer.py 的来源时所能理解的一点点,似乎都可以进行比较。 有什么想法吗?

【问题讨论】:

    标签: google-app-engine google-search-api


    【解决方案1】:

    您只能使用日期而不是日期时间进行过滤(请参阅“字符串和日期字段的特殊处理”here)。如下:

    query = 'updated < %s' % mydate.date()
    

    查询文档为here

    【讨论】:

    • 是的,我发现了。让我感到困惑的是,您可以使用 datetime 来存储字段,但不能使用 datetime STRING 来搜索它。
    • 目前我们只是将日期时间作为 ISO8601 字符串存储在 AtomFields 中......然后它基本上可以工作
    • @NickFranceschina,我也面临查询 last_updated_date > last_login_date 的问题。我想根据日期时间进行过滤。您能否建议您如何使用 AtomFields 和 ISO8601 字符串
    • @VikramShinde - 只需用谷歌搜索“ISO 8601”以了解格式...然后将其作为普通字符串存储/查询到 AtomField en.wikipedia.org/wiki/ISO_8601
    【解决方案2】:

    这里的approval_date 实际上是一个Atom 字段。还是不行。

    query = approval_date < olderTimeInISO8601
    

    一定有别的办法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-25
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 2014-08-07
      • 2014-07-14
      • 2017-01-15
      • 1970-01-01
      相关资源
      最近更新 更多