2024-04-18 18:04:55 发布
网友
是否可以在GQL中使用通配符?我希望能够提取所有在其值中某个特定单词的记录。我不相信有一个“像”过滤器。以下是我要做的基本工作: 如果你能给我任何建议,我们将不胜感激-
mentors_with_topic = db.GqlQuery("SELECT * FROM MentorServices WHERE Services LIKE 'Reading'").get()
对于您想做的事情,最好使用^{} API(在1.7中添加)。在
有docs available,但本质上您创建了一个新的“search”索引和“documents”,您必须通过从现有数据创建它们来将它们添加到索引中。搜索索引是另一种完全可搜索的索引类型,但它仍然存储在数据存储中。在
作为一种粗俗的替代方法,如果您将要搜索的自由文本存储在StringListProperty中(您可能需要更新模型并迁移数据以拆分为单个单词),那么您可以使用一个简单的等式运算符(=)对其进行“搜索”,该运算符大致相当于python中的in:
StringListProperty
=
in
search_string = "Reading" q = MentorServices.all() q.filter("Services =", search_string) q.fetch()
我强烈建议使用searchAPI而不是这个,因为:
search
TextProperty
如果控制用户输入数据的方式,例如让他们输入一组技能作为标记,那么他们将更容易保存为StringListProperty,并且以这种方式进行搜索更有意义。要搜索非结构化文本,请使用searchAPI。在
对于您想做的事情,最好使用^{} API (在1.7中添加)。在
有docs available,但本质上您创建了一个新的“search”索引和“documents”,您必须通过从现有数据创建它们来将它们添加到索引中。搜索索引是另一种完全可搜索的索引类型,但它仍然存储在数据存储中。在
作为一种粗俗的替代方法,如果您将要搜索的自由文本存储在
StringListProperty
中(您可能需要更新模型并迁移数据以拆分为单个单词),那么您可以使用一个简单的等式运算符(=
)对其进行“搜索”,该运算符大致相当于python中的in
:我强烈建议使用
search
API而不是这个,因为:TextProperty
字段迁移到StringListProperty
字段,然后才能执行此操作StringListProperty
字段对存储文本无效search
API正是为了避免这类解决方案而创建的。在如果控制用户输入数据的方式,例如让他们输入一组技能作为标记,那么他们将更容易保存为
StringListProperty
,并且以这种方式进行搜索更有意义。要搜索非结构化文本,请使用search
API。在相关问题 更多 >
编程相关推荐