Firebase 可以執行 SQL「LIKE」操作嗎?
Firebase 是一種流行的資料儲存工具,其資料結構通常類似於關聯式資料庫。但是,Firebase 本身並不支援結構化查詢語言 (SQL) 操作,例如 LIKE。儘管如此,還是有一些優雅的方法可以實現類似的功能。
隨著 Firebase Cloud Functions 的出現,透過 Functions 將 Firebase 與 Algolia 整合提供了一個有效的解決方案。與自訂解決方案相比,這種方法維護成本低,但可能會產生額外成本。
或者,人們可以實現自己的搜尋功能。但是,由於搜尋功能的複雜性和重要性,通常建議利用可擴展的第三方工具。 Firebase 的一個流行選項是 ElasticSearch,它可以透過監控和索引流程進行整合。
索引資料:
var Firebase = require('firebase'); var ElasticClient = require('elasticsearchclient') // initialize ElasticSearch API var client = new ElasticClient({ host: 'localhost', port: 9200 }); // listen for Firebase data changes var fb = new Firebase('<INSTANCE>.firebaseio.com/widgets'); fb.on('child_added', createOrUpdateIndex); fb.on('child_changed', createOrUpdateIndex); fb.on('child_removed', removeIndex); function createOrUpdateIndex(snap) { client.index(this.index, this.type, snap.val(), snap.name()) .on('data', function(data) { console.log('indexed ', snap.name()); }) .on('error', function(err) { /* handle errors */ }); } function removeIndex(snap) { client.deleteDocument(this.index, this.type, snap.name(), function(error, data) { if( error ) console.error('failed to delete', snap.name(), error); else console.log('deleted', snap.name()); }); }
查詢索引:
<script src="elastic.min.js"></script> <script src="elastic-jquery-client.min.js"></script> <script> ejs.client = ejs.jQueryClient('http://localhost:9200'); client.search({ index: 'firebase', type: 'widget', body: ejs.Request().query(ejs.MatchQuery('title', 'foo')) }, function (error, response) { // handle response }); </script>
這些步驟允許彈性和維護效能索引,使其成為Firebase 中類似SQL 操作的可行替代方案。
以上是如何在 Firebase 中實作 SQL'LIKE”功能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!