数千万件のレコードを持つカップルでキー値ストアとしてsolrを使用しました(ab)。また、本番では、インデックス付きデータの完全コピーをjson形式で含むインデックスを持っており、この値を返すクエリを実行することで、データベースの参照が冗長ではるかに遅くならないようにしています。
あなたのニーズに応じて、それはかなり良い解決策ですが、制限を認識する必要があります。
1)すでにsolrまたはluceneを使用している場合は、別の技術を使用する必要がないのが便利です。
2)Luceneは単一行のルックアップに優れており、その目的のためにうまくスケールする必要があります。
3)余分な列をいくつか追加するだけで、クエリ機能も利用できます。
短所 1)Luceneはトランザクションストアとして設計されていません。通常、複数の行を追加してからコミットします。したがって、書き込みはACIDの意味で原子的ではありません。あなたが重要なデータを保管しているのであれば、通常はそれは悪いことです。最近(近く)のリアルタイムインデックス作成が可能ですが、それでも権利を得るには多くの手間が必要です。
2)あなたが追加してからコミットするまでの間に遅延があるので、それはあなた自身の書き込みを読むことが問題になることを意味します。
3)書き込みスループットが必要な場合は、一括してインデックスを作成することをお勧めします。個別のキーを1つずつ書き込む必要がある場合は、スループットが低下します。
4)照会時にルーセンが優れていますが、大きな結果セットには問題があります。たとえば、値のすべてのキーを生成するクエリは、数千万行のソルインデックスで非常に高価になる可能性があります。
javaでは、あなたは普通の 'HashMap'を使用できないでしょうか? – gabuzo
私はそれを永続させる必要があります。だから私はそれを書いて、それを保存します。私はそれをもう一度ロードし、さらにいくつか追加して保存します。それを開いて何かを探す。 – knokio
キータイプとは何ですか?値の種類は?大きなテキストの中の単語を検索する必要がありますか?なぜデータベースを使用しないのですか? –