在Cloud Datastore中的字段上添加索引

时间:2018-05-02 11:19:44

标签: python google-cloud-platform google-cloud-datastore google-search-api

我想在Cloud Datastore中的字段DateTimeProperty上添加索引。

我创建了一个类如下:

class Activity(BaseModel):
    activity = ndb.StringProperty(required=True)
    last_updated_date = ndb.DateTimeProperty(auto_now=True)

现在我想针对它运行查询,如下所示:

txt = u'last_updated_date >= {}'.format(last_login_date)
query = search.Query(query_string=txt)
result = search_index.search(query)

我已在属性last_update_date上创建了一个索引,但是,它只搜索日期字段而不是时间字段。

因此,如果我今天在sysdate之前创建任何新活动,它仍会显示在查询中...

1 个答案:

答案 0 :(得分:0)

您尝试使用GAE Python Search API(您的查询代码段正在使用)来查询数据存储区(使用ndb客户端库) - 这不会起作用 - 搜索API不使用数据存储区。从那个链接(强调我的):

  

文档和索引保存在单独的持久性存储中   优化搜索操作。 Search API可以索引任何数字   的文件。 App Engine数据存储可能更适合   需要检索非常大的结果集的应用程序

要查询数据存储,您需要使用NDB QueriesDatastore Indexes(与搜索API索引不同)。

如果您确实想使用搜索API,则需要使用相同的API(而不是将信息存储在数据存储区中)从您的信息创建相应的搜索API文档。