2

mapreduce を使用してデータのビューを投影できる cloudant を使用しています。また、lucene を使用してドキュメントを検索することもできます。

ただし、これら 2 つの機能は別個のものであり、一緒に使用することはできません

このようなユーザーデータを使用してゲームを作成するとします

{
    name: ""
    items:[]        
}

各ユーザーはアイテムを持っています。次に、ユーザーが品質 +10 のすべての剣を見つけられるようにします。cloudant を使用すると、タイプと品質をキーとして投影し、クエリを使用する場合がありますkey=["sword",10]

しかし、lucene のようにクエリを複雑にすることはできません。ルセンを行うには、すべてのアイテムを正規化してドキュメントにし、所有者と参照する必要があります

データ プロジェクションのキーで lucene 検索を実行できればと思います。つまり、正規化の代わりに、ネストされたドキュメントを必要に応じて保存し、マップ/リデュースを使用してドキュメント内のデータを投影して、アイテムを直接検索できるようにすることができます

PS。そのデータベースにスクリプトによる部分的な更新があり、本質的にトランザクション更新機能を備えている場合、それが最適です

4

3 に答える 3

1

仕事をするいくつかの解決策があります。十分に確立された MongoDB を提案することに 2 セントを差し出すことができます。MongoDB を使用すると、特定のフィールドにテキスト インデックスを作成し、ここで説明されているように全文検索を実行できます。この機能はバージョン 2.4 以降の MongoDb にあり、構文は MongoDB ドキュメントで十分に文書化されています。

于 2017-01-10T10:16:46.510 に答える