私は、例えば "My name is John"という文字列をFirebaseに格納しています。firebaseクエリとスウィフト
にはどうすればいいので、私は「ジョン」を持っているFirebase内のすべての記事を見つけることができますfirebase照会でしょうか?
私が今使用して、文字列の最初の項を検索することができます:
DataService.dataService.BASE_REF.child("Posts").child(selectedComment.commentKey).queryOrderedByChild("userComment").queryStartingAtValue(comment).queryEndingAtValue(comment+"\u{F8FF}").observeSingleEventOfType(.Value, withBlock: { (snapshot) in
コメント=「マイ」
私はFirebaseと弾性検索を使用して読んなく、あったかどうかを確認したかったです私はFirebaseためElasticSearch /懐中電灯を見て前にFirebaseで簡単な方法は、
すべての投稿をダウンロードし、Swiftで検索することができます。最もエレガントなソリューションではありません。 。とにかくFirebaseのドキュメントでは、検索の例を見ることができます:https://firebase.google.com/docs/reference/js/firebase.database.Query –
答えは受け入れられましたが、問題はまだ別のライブラリに依存しています部分文字列(ワイルドカード)検索を行います。あなたはこれを自分で行うことができます - それは容易ではありませんが、コードを制御します。私の答えは、この質問[Wilcardクエリ](http://stackoverflow.com/questions/36365157/wildcard-query-on-firebase/36366619#36366619)を参照してください。あなたの場合、単語全体を検索する場合は、自動的に文を解析して各単語を保存するパーサを作成します。次に、部分文字列検索は超高速です。それはたくさんのコードではなく、ディスクスペースも安いので別のオプションです。 – Jay
DIYソリューションは、ファイヤーベースの仕組みによって複雑になります。任意のコレクションでテキストの一致を検索するには、コレクション全体をクライアントにダウンロードする必要があります。少量のデータでは、クライアント側の検索は確かに最も簡単なオプションだと思います。しかし、些細なコレクションサイズと帯域幅/ cpuの制約を超えるものは、自明ではありません。私の経験上、この点は思ったよりもずっと早く到着します。つまり、非常に大規模なコレクションが不合理になることはありません。 – Brandon