我一直在使用 Google App Engine。我发现搜索子字符串和其他一些操作有问题。javax.jdo.Query 提供了根据需要设置过滤器的选项。有几个过滤器可用,例如包含、不等式运算符,但我找不到任何符合我需要的过滤器。
我找不到以下方法:如何将查询过滤器设置为
- 搜索子字符串
- 按正则表达式搜索
- 按忽略大小写搜索
JDO 是否可以进行上述 3 种操作中的任何一种?
我一直在使用 Google App Engine。我发现搜索子字符串和其他一些操作有问题。javax.jdo.Query 提供了根据需要设置过滤器的选项。有几个过滤器可用,例如包含、不等式运算符,但我找不到任何符合我需要的过滤器。
我找不到以下方法:如何将查询过滤器设置为
JDO 是否可以进行上述 3 种操作中的任何一种?
不,这些在 App Engine 数据存储区中是不可能的,因为它们不能满足索引。App Engine 数据存储区不执行需要扫描所有实体的查询。
对于第一个选项,全文搜索可能是您想要的。第二,没有好的解决办法。最后,您只需将字符串的小写或大写版本存储在数据存储中以进行搜索。
您是否从 App Engine 对新的 FTA 进行了一些搜索?https://developers.google.com/appengine/docs/java/search/
您必须从数据存储中创建数据索引,然后您可以使用一些通配符对索引文档进行搜索。
但请注意,这个项目目前是实验性的。
编辑:
另一种解决方案是将Whoosh与App Engine 上的后端服务一起使用。然后创建一个 Web 服务。并使用 urlfetch 从您的前端调用您的后端。