非常に特殊なデータ形式とクエリのニーズがあり、このニーズに対する NoSQL DB の適合性を知る必要があります。「どの DB が最適か」という質問ではありません。私は機能に興味があります。
EAV スタイルでデータを保存する必要があります。スパース インデックスを使用したドキュメント ストアは、これに最適です。このようにして、その値の各パラメーターに対してインデックスを作成できます。クエリを実行すると、必要なインデックスのみが処理されます。たとえば、MongoDB はこれに最適です。これがニーズ #1 です。
クエリは 2 段階です。1 つ目は単純に「WHERE」に相当するもので、実数に対する一連の <=> 操作を含みます。結果は数万のレコードになる可能性がありますが、通常は数千のレコードになります。これがニーズ 2 です。
第 2 段階では、第 1 段階の結果をランク付けするために実行しなければならない重い数学が含まれます。この計算には、べき乗の多用とより単純な操作が含まれます。結果はランク順にソートされ、「上位 100」がクライアントに返されます。これがニーズ #3 です。
MongoDB は NoSQL DB の中で唯一比較的馴染みがあるので参考にさせていただきます。クエリで数学を実行できるとは思いません。実行できたとしても、遅くなる可能性があります。計算はクライアントで (C または CUDA で) 実行する必要があると思います。これは、データを DB からクライアントに非常に迅速に転送する必要があることを意味します。MongoDB にはネイティブのバイナリ接続があることは知っていますが、たとえば、Couchbase では REST を使用しているため、大規模なデータセットのデータ転送が遅くなると思います。
私が MongoDB に落ち着かなかった理由は、分散サーバーが必要だからです。たとえば、Couchbase の方が適しているようです。
したがって、内部で高速計算を実行して転送するレコードの数を制限するか、クライアントで処理できるようにレコードを非常に高速に転送できるソリューションが必要です。知る唯一の方法はテストすることだと理解していますが、私が知らないこと、したがってこの質問は、どの NoSQL DB が言及された機能を持っているかということです。