java - 对象化查询过滤器,例如 "name contains"

标签 java google-app-engine objectify

通过 Google App Engine 使用 Objectify 查询数据存储区,我想使用类似的查询

objectifyService.query(Entity.class).filter("name contains", a);

这将返回一个列表,其中包含名称中包含“a”字符的所有实体。但是 contains 运算符不存在。

有没有简单的方法可以做到这一点?

最佳答案

您可以通过将名称字段分解为您希望搜索的片段并将它们存储为索引属性来建立全文搜索服务的简化等效项。您甚至可以使用 Lucene 的分析器对您的字段进行标记和词干。

在使用数据存储区时,这种情况会经常出现:如果您没有可以执行您想要的操作的查询运算符,请对相关数据进行预索引,以便您的查询现在是一个相等测试。

或者,使用 FTS 服务。

关于java - 对象化查询过滤器,例如 "name contains",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27595327/

相关文章:

java - 为什么在初始化 Timer 实例时会收到 java.security.AccessControlException?

java - GAE fetchAsync 是否会比请求的生命周期更长?

java - Objectify 中的多态性 : "id cannot be 0" in the SaveException

gwt - Google Objectify v4 通过 id 获取

java - 如果我将一些小部件放入单个通用 GWT 模块中,GWT 对速度有帮助吗?

java - 如何在java中为SimpleDateFormat应用applyPattern?

java - 如何在javafx中动态加载和删除节点?

javascript - JS - 将对象数组传递到新窗口

java - 如何制作我的应用系统

java - 使用 Google App Engine 的网络服务