我正在使用带有应用程序引擎的java。SQL查询:
select * from Person where name LIKE "a%"
如何在 Google App Engine 上编写它?
我正在使用带有应用程序引擎的java。SQL查询:
select * from Person where name LIKE "a%"
如何在 Google App Engine 上编写它?
假设您正在查询 App Engine 数据存储区中的实体,在 Java 中您将重写LIKE "a%"
为类似
Query query = new Query("Person")
.addFilter("name", QueryFilterOperater.GREATER_THAN_OR_EQUAL, "a")
.addFilter("name", QueryFilterOperator.LESS_THAN, "b");
剩下的留作练习。请参阅https://developers.google.com/appengine/docs/java/datastore/queries
要执行此类查询,您必须使用Google Cloud SQL。
如果您使用的是 Datastore,那么它不支持全文搜索。您必须手动创建所有可能的名称变体并使用它们来查询实体。您可以将它们存储在特殊实体的多值字段中(它可能很昂贵)或使用完全适合此目的的特殊搜索 API(搜索不支持子字符串匹配,因此您必须使用相同的变体)。
使用 Search API 的两个词是:
列表项在 Datastore 中创建 Person 实体,其中包含一些name
在名为 的搜索索引中创建相应的文档Persons
,其中包含字段possible_names
和entity_id
(您也可以使用 Document.doc_id 来存储实体的 id)。在possible_names
您存储所有有用的名称变体除以空格。
查询Persons
索引以查找字段possible_names
与您的搜索字符串匹配的所有文档。
使用字段entity_id
表单结果的文档按 id 从数据存储中检索实体。
这是一个小例子。
你在找这个吗 "select * from Person where name LIKE \"a%\""