如何在Firebase数据库中对字段进行通配符字符串搜索?

时间:2017-03-27 14:33:20

标签: android firebase firebase-realtime-database

如何在Firebase数据库中实现类似于SQL查询的字符串搜索:

SELECT select_column from table_name where search_column LIKE '%search_word%'

1 个答案:

答案 0 :(得分:2)

Firebase本身不支持文本搜索。使用此hack可以实现与查询最接近的部分字符串匹配:

FirebaseDatabase.getInstance().getReference(table_name).orderByChild(select_column).startAt(search_word).endAt(search_word + "~");

任何可打印字符的~字符has the highest ASCII value,因此查询结果是以select_column开头的search_word的所有情况。

如果您需要更高级的搜索或匹配条件,则必须使用或编写全文搜索解决方案。 ElasticSearch是Firebase的热门用户。 Flashlight是一个Node.js模块,它直接在数据库中合并这两个模块。 (请注意,现在可以将Flashlight部署到Firebase Functions而不是推荐的Heroku配置。)