【问题标题】:Objectify query filters like "name contains"对象化查询过滤器,例如“名称包含”
【发布时间】:2014-12-22 00:39:39
【问题描述】:

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

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

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

有简单的方法吗?

【问题讨论】:

    标签: java google-app-engine objectify


    【解决方案1】:

    您可以通过将您的名称字段分解为您希望搜索的部分并将它们存储为索引属性来构建一个简化的全文搜索服务。您甚至可以使用 Lucene 的分析器来标记和阻止您的字段。

    在使用数据存储时经常会出现这种情况:如果您没有一个查询运算符来满足您的需求,请预先索引相关数据,以便您的查询现在是一个相等性测试。

    或者,使用 FTS 服务。

    【讨论】:

    • 我一直在寻找这种解决方法。谢谢
    【解决方案2】:

    答案是“运营商不存在” - Google 数据存储区不支持此类过滤器。要搜索,您应该使用搜索引擎:https://cloud.google.com/appengine/docs/java/search/

    【讨论】:

      猜你喜欢
      • 2017-08-15
      • 2011-12-22
      • 1970-01-01
      • 1970-01-01
      • 2012-04-09
      • 1970-01-01
      • 2013-11-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多