0

CouchDBのビュー照合ドキュメント( http://wiki.apache.org/couchdb/View_collat ​​ion )によると、collat ​​ionではメンバーの順序が重要です。照合順序が問題にならないように、この属性を無効にする方法があるかどうか疑問に思っていましたか? 発行されるドキュメントがフィールドのすべてのキー範囲を満たすように、ビューを「検索」できるようにしたいと考えています。

参照用に、ビューの照合についてさらに詳しく説明します。同じビューでの CouchDB の並べ替えとフィルタリング

同様に、ビューの照合に順序が関係ないように CouchDB を設定できる場合、GET要求に使用される次のパラメーターは、 doc.phone_number == "ZZZZZZZ"であるドキュメントのみを発行する必要があります。最初の 3 つのキーの範囲内で、最後のキーを完全に無視します。これは、現在の照合スキームで最後のキーの優先順位が最も低いために発生します。

startkey : [null,null,null,"ZZZZZZZ"],

エンドキー: ["\ufff0","\ufff0","\ufff0","ZZZZZZZZ"],

サンプルマッピング関数

var マップ = 関数 (ドキュメント) {


                    /*
                    //発行されたキー
                    1.名前
                    2.住所
                    3.年齢
                    3.電話番号
                    */
                    emit([doc.name,doc.address,doc.num_age,doc.phone_number],doc._id)
                }

これは可能ですか、またはこれを実行するには複数のビューを作成する必要がありますか? 複数のビューの使用は非常に非効率的です。

CouchDB-Lucene :(カウチデータベースで複雑な検索フィルターを実現するには? 一時的なビューを避ける必要がありますか? ) が複雑な検索に役立つことを読みましたが、この場合は当てはまらないようです。

4

1 に答える 1

0

4 つのビュー (名前、住所、年齢、電話番号) を使用しても、1 つのビューですべてを出力する場合よりも時間やメモリを大幅に使用することはありません。これは、CouchDB で「WHERE フィールド = 値」クエリを実行するためのシンプルで直接的で効率的な方法です。

実際に「WHERE field = value AND field2 = value2」クエリを探している場合、CouchDB は役に立たず、Lucene を使用する必要があります。

照合順序は単にキーの順序を記述するだけであることを理解する必要があります。任意の照合順序を指定できたとしても、CouchDB ではキーの順序を定義する必要があり、連続した範囲のキーしかクエリできないという事実に対処する必要があります。これは、多次元範囲クエリと互換性がありません。

于 2012-07-03T09:42:23.683 に答える