Aerospike Cクライアントマニュアル-クエリー-インデックス管理


セカンダリインデックス管理
Aerospike Cクライアントは、データベース内でセカンダリインデックスを作成および削除する機能を提供します.
現在、セカンダリインデックスはnamespace、set、binの3つの名前の組み合わせで作成できます.インデックスを作成するために使用できるbin数値タイプはintegerまたはstringです.1つのセカンダリインデックスが整数値を含む「x」という名前のbinに定義されている場合、bin「x」を含むレコードのみがインデックスされます.他のbin「x」を含むデータは整数ではないレコードはインデックスされません.
インデックス管理呼び出しはAerospikeクラスタのいずれかのノードに送信され、情報は自動的に残りのノードに伝播されます.
セカンダリインデックスの作成と削除は「高価」な操作であり、アプリケーション実行時タスクとしてではなく、管理タスクとして実行する必要があります.Aerospikeはaqlなどの多くのツールを提供し、セカンダリインデックスを作成、削除、管理、監視します.この章で説明するAPIは、これらのツールと他のツールを構築するために提供されます.
次は、セカンダリインデックスを作成する操作です.各アクションは、namespace、set、binおよび名前を指定し、namespaceでセカンダリインデックスを一意に識別します.aerospike_index_integer_create()-整数値binにインデックスを作成します. aerospike_index_string_create()-文字列の数値binにインデックスを作成します.
次のコード・スライスは、サンプル・ディレクトリ【examples/query_examples】から参照されます.
クラスタへの接続の確立方法については、「接続の作成」の章を参照してください.
次のコードは、「binX」という名前のbinにintegerインデックスを作成し、作成されたインデックスのレコードが属するnamespace名を「test」、set名を「test-set」、インデックスを「idx_binX」と識別します.
as_error err; if (aerospike_index_integer_create(&as, &err, NULL, "test", "demoset", "binX", "idx_binX") != AEROSPIKE_OK) { LOG("aerospike_index_integer_create() returned %d - %s", err.code, err.message); return false; }

セカンダリインデックスを削除する操作はaerospike_index_remove()は、namespaceとセカンダリインデックス名を使用する必要があります.
as_error err; aerospike_index_remove(&as, &err, NULL, "test", "idx_binX");

テキストリンク:http://www.aerospike.com/docs/client/c/usage/query/sindex.html
首をかしげる