Firebase查询-查找具有包含字符串的子项的项



我在使用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"的对象。我该怎么做?

查询API中没有包含或模糊匹配方法,如果您扫描了API和查询指南,您可能已经猜到了这一点。

这个话题不仅在SO[1][2][3][4][5]上被讨论得令人作呕,而且我已经多次谈到为什么应该使用真正的搜索引擎,而不是尝试这种三心二意的搜索方法。

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

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

但老实说,ElasticSearch在这里更快、更简单、更高效。由于这是一个庞大的话题,我将把你的博客推迟到这个主题。

相关内容

最新更新