首页  >  文章  >  后端开发  >  如何在 App Engine 数据存储区中查找带有前缀的字符串?

如何在 App Engine 数据存储区中查找带有前缀的字符串?

Barbara Streisand
Barbara Streisand原创
2024-10-24 06:46:02979浏览

How to Find Strings with Prefixes in App Engine Datastore?

在 App Engine 数据存储区中搜索:查找带前缀的字符串

简介:

搜索名称字段开头的实体具有特定字符串是数据查询中的常见需求。 Google App Engine Datastore 提供了一种实现此目的的方法,但可能不会立即显现出来。本文演示了如何构建此类查询并探索其他 App Engine 服务中的替代解决方案。

问题陈述:

“我尝试检索名称开头的地点使用过滤器查询的特定字符串,但它不起作用。数据存储中是否支持此功能,如果不支持,有哪些可能的解决方法?”

查询构造:

前缀查询背后的直觉是过滤名称大于前缀字符串的实体。然而,仅使用一个不等式过滤器(例如,名称 >“a”)将会失败,因为它排除了名称以前缀开头的所有实体。

解决方案在于组合两个不等式过滤器。我们需要指定名称既大于或等于前缀字符串又小于下一个字典字符串。

示例查询:

让我们检索以下地点以“li”开头:

q = datastore.NewQuery("Places").Filter("Name >=", "li").Filter("Name <", "lj")

解释:

  • 第一个过滤器确保 Name 大于或等于“li”。
  • 第二个过滤器通过指定名称小于“lj”来排除“li”本身,“lj”是“li”之后的下一个字典字符串。

替代解决方案:

如果此方法不能满足特定要求,App Engine 会提供其他高级查询服务:

  • BigQuery: 利用 SQL 语法并支持高效海量数据集查询。
  • BigTable:适用于时序数据和实时分析的可扩展、高性能数据库。

以上是如何在 App Engine 数据存储区中查找带有前缀的字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn