2016-07-24 4 views
3

documentDBのドキュメントは、それがここに自動的にインデックスを提供することを示唆している:以下に示すように https://azure.microsoft.com/en-us/documentation/articles/documentdb-indexing/DocumentDBは自動索引付け機能を提供していますか?

しかし、(紺碧のポータル上で)それのためのサンプルコードは、手動インデックスポリシーの作成を示しています

DocumentCollection collectionInfo = new DocumentCollection(); 
collectionInfo.Id = collectionName; 
// Configure collections for maximum query flexibility including string range queries. 
collectionInfo.IndexingPolicy = new IndexingPolicy(new RangeIndex(DataType.String) { 
    Precision = -1 
}); 

documentDBが提供している場合インデックスを手動で作成する必要があるのはなぜですか。

答えて

1

すべてのフィールドにデフォルトの3バイトハッシュインデックスがあります。インデックスポリシー設定を使用して、特定のフィールド/タイプのインデックスポリシーを上書きすることができます。範囲索引を必要とする場合や、索引の精度を変更する場合は、ポリシーを使用します。他の一般的な用途の中でORDER BYを使用するフィールドに範囲インデックスを設定する必要があります。したがって、両方のステートメントは真です。自動索引作成機能を提供しますが、索引付けを指定することもできます。

+0

ある自動インデックスは、文字列の範囲のインデックスが含まれていますか?はいの場合、文字列範囲インデックスポリシーを手動で設定する必要はありません。ご確認ください。 – Raghu

+0

いいえ、そうではありません。それは、文字列または数字に対してのみハッシュインデックスを行います。インデックスポリシーを手動で設定する必要があります。 –

1

はい、DocumentDBは、スキーマに依存しない自動索引作成機能を提供します。ドキュメント間のあらゆる種類のスキーマ変更で、すべてのドキュメントのすべてのパスが一貫して索引付けされます。

デフォルトのポリシーは完全な忠実度範囲のサポートでインデックス番号に設定され、文字列はハッシュ関数でインデックス付けされることに注意してください。これらのデフォルトは、最小限のストレージオーバーヘッドで魅力的なクエリパフォーマンスを提供するように選択されています。

インデキシングポリシーは、次の場合のデフォルト挙動をオーバーライドするユーザーのために利用可能である -

  1. 除外パスの一部として、索引付けからの任意の特定のパスをオプトアウト。これにより、書込みパスで発生するRUの削減に役立ちます。また、除外されるパスの数によっては、ストレージの増加につながる可能性があります。

  2. インデックスの種類(ハッシュ/範囲/空間)とインデックスの精度を調整します(精度が高いほどクエリのパフォーマンスが向上し、ストレージのコストはわずかに増加します)。

インデックスポリシーの

完全な詳細は、こちらを

https://azure.microsoft.com/en-us/documentation/articles/documentdb-indexing-policies/

関連する問題