0

我的代码如下:

class sample(ndb.Model):
    text=ndb.StringProperty()

class sample2(webapp2.RequestHandler):
   def get(self, item):
       q = sample.query()
       q1 = query.filter(item in sample.text)

我想在示例中的文本中搜索特定的单词(项目)。我该怎么做?我试过这个链接,但它并没有真正回答我的问题——如何在 Python 中为 Google App Engine 获取 StringProperty 的值?

4

2 回答 2

1

不幸的是,您不能对数据存储(或任何其他数据库)进行类似的查询。数据存储区查询是基于索引的,索引不能存储复杂的信息,比如字符串是否有某个子串。

App Engine 也有一个搜索 API,您可以使用它来进行更复杂的文本搜索。

于 2020-02-12T13:37:07.250 回答
-1

首先,Python 2 自 2020 年 1 月 1 日起已弃用,Google Cloud Platform 强烈鼓励迁移到更新的运行时。此外,不再推荐使用 ndb 库,并且需要更新依赖它的代码,然后才能开始使用 Python 3 运行时。所有这些原因使我建议您在花费大量时间之前直接切换。

话虽如此,您可以在有关查询属性的 ndb 库文档中找到答案。Github 代码示例中还有几个示例。

首先,您需要使用该query()方法检索实体,然后通过 python 对象属性表示法访问它的数据。或多或少会如下所示:

q = sample.query()            # Retrieve sample entity.
substring = 'word' in q.text  # Returns True if word is a substring of text
于 2020-02-12T10:54:28.487 回答