【问题标题】:How to use Like query in objectify如何在 objectify 中使用 Like 查询
【发布时间】:2019-05-21 05:28:01
【问题描述】:

我想在 db 中搜索 url 文本中的子字符串。 喜欢%substring%。 如何使用objectify 解决这个问题?

if(url != null) {
    xoloWebHistoryQ=xoloWebHistoryQ.filter("url >=", url);
    xoloWebHistoryQ=xoloWebHistoryQ.filter("url <", url+"\ufffd");
}

我用上面的代码试过了,但是没有返回urls,那个substrings在中间。

【问题讨论】:

    标签: objectify datastore


    【解决方案1】:

    您要求进行全文搜索。这不是数据存储区擅长的事情——实际上,大多数数据库在这方面都做得很差,这就是为什么我们有专门的数据库,比如 Elasticsearch。

    如果你想用数据存储来伪造它,你可以。创建您在@OnSave 方法中填充的合成索引列表属性。用你想匹配的所有东西填充它:'substring'、'ubstring'、'bstring'、'ubs'等。然后对这个字段进行相等匹配。请注意,您可能会以这种方式获得巨大的索引,但如果您的数据足够紧凑,它会起作用。

    如果您想要“真正的”全文搜索,请将数据从数据存储复制到其他更适合这种索引的地方。有托管的 Elasticsearch 服务。 GAE/Standard 有一个运行良好的旧 FTS 服务(尽管它可能不是一个好的长期解决方案)。如果您的需求很简单,您甚至可以使用 Postgres。

    【讨论】:

      猜你喜欢
      • 2012-08-09
      • 1970-01-01
      • 1970-01-01
      • 2012-06-08
      • 1970-01-01
      • 1970-01-01
      • 2011-03-19
      • 1970-01-01
      • 2020-02-05
      相关资源
      最近更新 更多