Secondary Index Examples
大雑把な意訳、理解が苦しい箇所は英文と一緒に転載します
http://docs.basho.com/riak/1.3.2/tutorials/Secondary-Indexes---Examples/
2013/07/04 追記: もっと素晴らしい全訳が Github にありました。
https://github.com/basho/basho_docs/blob/1.3.0/source/languages/jp/riak/tutorials/Secondary-Indexes---Examples.md
Overview
例を試すには、Riak を localhost:8098 で HTTP Protocol を使用できるように動かしてください。またインデックスに対応したバックエンドストレージを使う設定を行なってください。
Index Objects
次の例は、4 つの異なる Object にインデックスを付けます。
curl -v -XPUT \
-d 'data1' \
-H "x-riak-index-field1_bin: val1" \
-H "x-riak-index-field2_int: 1001" \
http://127.0.0.1:8098/riak/mybucket/mykey1
curl -v -XPUT \
-d 'data2' \
-H "x-riak-index-Field1_bin: val2" \
-H "x-riak-index-Field2_int: 1002" \
http://127.0.0.1:8098/riak/mybucket/mykey2
curl -v -XPUT \
-d 'data3' \
-H "X-RIAK-INDEX-FIELD1_BIN: val3" \
-H "X-RIAK-INDEX-FIELD2_INT: 1003" \
http://127.0.0.1:8098/riak/mybucket/mykey3
curl -v -XPUT \
-d 'data4' \
-H "x-riak-index-field1_bin: val4, val4, val4a, val4b" \
-H "x-riak-index-field2_int: 1004, 1004, 1005, 1006" \
-H "x-riak-index-field2_int: 1004" \
-H "x-riak-index-field2_int: 1004" \
-H "x-riak-index-field2_int: 1004" \
-H "x-riak-index-field2_int: 1007" \
http://127.0.0.1:8098/riak/mybucket/mykey4
次の例は、インデックスの項目に無効な名前あるいはタイプを指定した場合に何が起きるかを実際にやってみます。システムは 400 Bad Request とエラー内容を示すレスポンスを返します。
curl -XPUT \
-d 'data1' \
-H "x-riak-index-field2_foo: 1001" \
http://127.0.0.1:8098/riak/mybucket/mykey
# Response
Unknown field type for field: 'field2_foo'.
curl -XPUT \
-d 'data1' \
-H "x-riak-index-field2_int: bar" \
http://127.0.0.1:8098/riak/mybucket/mykey
# Response
Could not parse field 'field2_int', value 'bar'.
Exact Match Query
次の例は、HTTP インタフェースを使用して、インデックスにマッチする結果を取得します。
# Query a binary index...
curl http://localhost:8098/buckets/mybucket/index/field1_bin/val1
# Query an integer index...
curl http://localhost:8098/buckets/mybucket/index/field2_int/1001
Range Query
HTTP インタフェースを使用して、Range Querey を実行する例です。
# Query a binary index...
curl http://localhost:8098/buckets/mybucket/index/field1_bin/val2/val4
# Query an integer index...
curl http://localhost:8098/buckets/mybucket/index/field2_int/1002/1004
Retrieve all object keys in a bucket based on the $bucket index
bucket "mybucket" に格納されている全ての Object の keys を検索する例です。
curl http://localhost:8098/buckets/mybucket/index/\$bucket/_
End
実際に試してみなきゃ、わかんねーな