【问题标题】:Firebase query - Find item with child that contains stringFirebase 查询 - 查找包含字符串的子项
【发布时间】:2015-04-19 18:39:37
【问题描述】:

我在使用 Firebase 查询时遇到了一些问题。我想查询对象,其中对象子值包含某个字符串。到目前为止,我有一些看起来像这样的东西:

Firebase *ref = [[Firebase alloc] initWithUrl:@"https://dinosaur-facts.firebaseio.com/dinosaurs"];
[[[[ref queryOrderedByKey] queryStartingAtValue:@"b"] queryEndingAtValue:@"b~"]
    observeEventType:FEventTypeChildAdded withBlock:^(FDataSnapshot *snapshot) {
    NSLog(@"%@", snapshot.key);
}];

但这只会给出起始值为“b”的对象。我想要包含字符串“b”的对象。我该怎么做?

【问题讨论】:

标签: ios objective-c iphone database firebase


【解决方案1】:

查询 API 中没有包含或模糊匹配方法,如果您扫描过 the APIthe guide on queries,您可能已经猜到了。

这个话题不仅在 SO [1] [2] [3] [4] [5] 上被讨论过,而且我已经多次谈到为什么应该use a real search engine,而不是尝试这种半心半意的搜索方法。

使用 Google 搜索网站通常比使用内置搜索更容易找到结果是有原因的,这是导致失败的主要原因。

综上所述,由于没有内置包含,如何手动执行此操作的问题的答案是设置一个服务器端进程,将数据加载/流式传输到内存并进行手动搜索的内容,最好有某种缓存。

但老实说,ElasticSearch 在这里更快、更简单、更高效。由于这是一个广泛的话题,我将把你推迟到blog post on this subject

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 2011-05-14
    • 2011-06-23
    相关资源
    最近更新 更多