Bolehkah Firebase Melaksanakan Operasi "LIKE" SQL?
Firebase ialah alat yang popular untuk penyimpanan data dan struktur datanya selalunya menyerupai pangkalan data hubungan. Walau bagaimanapun, Firebase tidak menyokong operasi Bahasa Pertanyaan Berstruktur (SQL) seperti LIKE. Namun begitu, terdapat cara yang elegan untuk mencapai kefungsian yang serupa.
Dengan kemunculan Cloud Functions for Firebase, penyepaduan Firebase dengan Algolia melalui Functions menawarkan penyelesaian yang berkesan. Pendekatan ini menyediakan penyelenggaraan yang rendah sambil berpotensi menanggung kos tambahan berbanding dengan penyelesaian tersuai.
Sebagai alternatif, seseorang boleh melaksanakan fungsi carian mereka sendiri. Walau bagaimanapun, disebabkan kerumitan dan kepentingan ciri carian, biasanya dinasihatkan untuk memanfaatkan alat pihak ketiga yang boleh berskala. Pilihan popular untuk Firebase ialah ElasticSearch, yang boleh disepadukan melalui proses pemantauan dan pengindeksan.
Data Pengindeksan:
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()); }); }
Menyiasat Indeks:
<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>
Langkah ini membolehkan pertanyaan fleksibel dan penyelenggaraan indeks prestasi, menjadikannya alternatif yang berdaya maju kepada operasi seperti SQL dalam Firebase.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencapai Fungsi SQL \'LIKE\' dalam Firebase?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!