3

hector API を使用して、共通のプレフィックスを持つすべての行を取得したいと考えています。RangeSuperSlicesQuery で少し遊んでみましたが、適切に機能させる方法が見つかりませんでした。キー範囲パラメータはワイルドカードなどで機能しますか?

更新: RandomPartitioner の代わりに ByteOrderedPartitioner を使用しましたが、それで問題なく動作します。これは予想される動作ですか?

4

2 に答える 2

5

はい、それは予想される動作です。RandomPartitioner では、行はキーの MD5 ハッシュの順序で格納されるため、意味のある範囲のキーを取得するには、ByteOrderedPartitioner のような順序を保持するパーティショナーを使用する必要があります。

ただし、ByteOrderedPartitioner または OrderPreservingPartitionerを使用することには、わずかに異なるデータ モデルと RandomPartitioner を使用することで通常回避できる欠点があります。

于 2011-06-10T14:11:49.297 に答える
0

上記の答えを詳しく説明するには、キーの代わりに列名を「共通のプレフィックス」として使用することを検討する必要があります。次に、列スライスを使用して特定の範囲内のすべての列名を取得するか、セカンダリ インデックスを使用して、その列名を持つすべてのキーに対してインデックス付きスライスを実行できます。

Column slice example:

Key (without prefix) 
  <prefix1> : <data>
  <prefix2> : <data>
  ...

Secondary index example:

Key (with or without prefix)
  "prefix" : <the_prefix> <-- this column is indexed
  otherCol1 : <data>    
  ...
于 2012-05-21T18:56:05.317 に答える