【问题标题】:GAE - Java - Best way to do a query filter "LIKE"GAE - Java - 执行查询过滤器“LIKE”的最佳方式
【发布时间】:2013-08-28 11:14:20
【问题描述】:

在我的 GAE 数据存储中,我有带有姓名、姓氏和国家/地区的“个人”实体

我需要做一个查询 "SELECT * FROM Country WHERE name LIKE '%spa%'"

This answer 提供了这样的解决方案:

Query query = new Query("Person");
query.addFilter("name", FilterOperator.GREATER_THAN_OR_EQUAL, "pe");
query.addFilter("name", FilterOperator.LESS_THAN, "pe"+ "\uFFFD");

但我没有任何成功,总是返回 0 个结果...我错过了什么?

似乎另一种选择是使用“Search API”,但是......我如何将我的数据存储中的所有“Persons”数据迁移到新的Document 进行搜索?

有什么解决办法吗?

谢谢

【问题讨论】:

    标签: java google-app-engine google-cloud-datastore


    【解决方案1】:

    那个答案和你的问题不一样。他们提供的查询是一个前缀 查询:即“pe”开头的所有名称。您似乎想要在任何地方查询所有包含“pe”的名称,由于该问题的已接受答案中解释的原因,这是不可能的。

    搜索 API 确实是解决此问题的方法,有关如何创建文档来表示数据存储对象的详细信息包含在您发布的链接中。 (请注意,这不是迁移:您的数据应该保留在数据存储中,Search API 是一个单独的系统,仅用于全文搜索。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-26
      • 1970-01-01
      • 2012-01-29
      • 1970-01-01
      • 2016-06-06
      • 1970-01-01
      • 1970-01-01
      • 2012-11-11
      相关资源
      最近更新 更多