ホームページ >ウェブフロントエンド >jsチュートリアル >Firebase で SQL「LIKE」機能を実現するにはどうすればよいですか?
Firebase は SQL "LIKE" オペレーションを実行できますか?
Firebase はデータ ストレージ用の人気のあるツールであり、そのデータ構造は多くの場合、リレーショナル データベース。ただし、Firebase は LIKE などの構造化照会言語 (SQL) 操作をネイティブにサポートしていません。それにもかかわらず、同様の機能を実現するエレガントな方法があります。
Cloud Functions for Firebase の出現により、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 中国語 Web サイトの他の関連記事を参照してください。