私は、Postgresデータベースとuserssのテーブルを持っていて、columnss UserIdとTagIdを持っています。各ユーザーは複数のタグを持つことができ、その逆もあります。複数のタグでデータベース検索を実装するスケーラブルな方法はありますか?
複数のタグによる検索をスケーラブルに実装する方法はありますか?照会の例:
- 取得TAG1とTAG2の両方を持っているすべてのユーザー
- すべて持っているユーザー(TAG1またはTAG2)とTAG3を取得
- 取得TAG1とTAG2を持っているとTAG3を持っていないすべてのユーザー
これはインデックスとスケールが容易ではないため、高速な検索のために、ある種のメモリ内キャッシュを使用することを考えていました。あなたはこの問題のすぐに利用できる解決法を知っていますか?すべての
あなたは何人のユーザーとタグを持っていますか? Postgresはこれらのクエリを簡単に処理できるはずです(たとえば、tag1を持つすべてのユーザーと、tag2を持つすべてのユーザーが交差するように選択する)。メモリに適切なインデックスを持っていればかなり速くなりますが、postgresにはすでにメモリ内キャッシュとクエリの最適化があります。しかし、これがあなたのために役立たないならば、あなたはSolrまたはElasticを見ることができます。 – nvartolomei