在 Firebase 中执行 SQL LIKE 操作
问题:
在 Firebase 中,哪种数据结构类似于关系数据库,如何执行 SQL LIKE 操作,其中通配符 (%) 是用于匹配字符串中的模式?
答案:
Firebase 目前不原生支持 SQL LIKE 操作。要实现类似的功能,您可以利用第三方工具或实现自己的解决方案。
选项 1:第三方工具
一种方法是将 Firebase 与Algolia 或 ElasticSearch 等第三方搜索引擎。这些服务提供强大的搜索功能,包括通配符匹配。通过将 Firebase 链接到 Algolia 或 ElasticSearch,您可以将搜索功能委托给这些专用平台。
选项 2:自定义解决方案
如果您更喜欢构建自己的解决方案,您可以实施两步方法:
为了说明这种方法,请考虑一个 Firebase 数据结构,其中包含一个名为“products”的文档,其中包含产品名称:
products:{ product1:{ name:"chocolate", } product2:{ name:"chochocho", } }
要对“cho”执行 LIKE 搜索,您可以:
监控更改并索引:
var db = getFirestore(); db.collection("products").onSnapshot(async (qs) => { qs.docChanges().forEach(async (change) => { const doc = change.doc; // Index the product name in a search engine here }); });
搜索:
// Search engine query results = esClient.search({ query: { match: { name: 'cho' } } }); // Process results results.then(res => { const hits = res.hits.hits; hits.forEach(hit => { console.log(hit['_source'].name); }); });
通过采用这些技术,您可以利用 Firebase 的数据存储优势并对其进行补充用于高级搜索功能的第三方服务或自定义解决方案,包括 SQL LIKE 操作。
以上是如何在 Firebase 中执行 SQL LIKE 操作?的详细内容。更多信息请关注PHP中文网其他相关文章!