使用Firebase

时间:2015-12-29 15:54:08

标签: search data-structures firebase

我想在Firebase的用户名中实现前缀搜索。通过前缀搜索,我的意思是在执行查询foo后,返回带有prefix foo的用户名。这样的结果可能会返回存储在数据中的prefix foo或只有special subset的所有用户名,但重要的是,如果存在此类用户名,则必须包含与精确查询匹配的用户名。

由于Firebase数据结构只是一个自定义可设计树,我的第一个想法是在所有用户名集上实现trie data structure

更详细地说,从根到trie的任何节点的每条路径对应于某些现有用户名的唯一前缀。然后在每个节点中,除了匹配此节点的用户名(如果存在此用户名)之外,我们还可以明确地存储一些用户名的子集,其前缀对应于此节点。这允许我们非常快速地返回具有给定前缀的所有用户名的子集。

添加或删除用户名时,可以轻松更新此类树。我的想法是,存储在节点中的用户名子集可以根据一些外部数据定期更新,这样可以使用某种度量返回更有价值的结果。

我想知道是否有其他推荐的方法可以达到目标,尤其是Firebase?任何关于上述方法的意见也表示赞赏。

1 个答案:

答案 0 :(得分:1)

直到现在firebase没有任何搜索API,例如" WHERE foo LIKE'%bar%'?",但你可以使用{{3}基于ElasticSearch,是一个非常强大的文档存储和索引工具。但是,它的核心是一个非常简单的搜索功能,它几乎与Firebase即插即用兼容。

查看firebase的官方博客文章,了解如何将Elastic Search与firebase集成 Lucene