2011-09-16 9 views
3

今、サブキーを一緒にフォーマットすることによって、複合キーを手動で生成する必要があります。それは醜く効率的ではありません。私は、Hectorがコンポジットキーをより適切な方法で処理するためのAPIのセットを提供しているのだろうかと思います。Hectorは複合キーをサポートするAPIを提供していますか?

答えて

5

はいです。

あなたは例のためにDynamicCompositeTestを見ることができます:

https://github.com/rantav/hector/blob/master/core/src/test/java/me/prettyprint/hector/api/beans/DynamicCompositeTest.java

@Test 
public void allTypesSerialize() { 
    DynamicComposite composite = new DynamicComposite(); 

    UUID lexUUID = UUID.randomUUID(); 
    com.eaio.uuid.UUID timeUUID = new com.eaio.uuid.UUID(); 


    //add all forward comparators 
    composite.addComponent(0, "AsciiText", AsciiSerializer.get(), "AsciiType", ComponentEquality.EQUAL); 
    composite.addComponent(1, new byte[]{0, 1, 2, 3}, BytesArraySerializer.get(), "BytesType", ComponentEquality.EQUAL); 
    composite.addComponent(2, -1, IntegerSerializer.get(), "IntegerType", ComponentEquality.EQUAL); 
    composite.addComponent(3, lexUUID, UUIDSerializer.get(), "LexicalUUIDType", ComponentEquality.EQUAL); 
    composite.addComponent(4, -1l, LongSerializer.get(), "LongType", ComponentEquality.EQUAL); 
    composite.addComponent(5, timeUUID, TimeUUIDSerializer.get(), "TimeUUIDType", ComponentEquality.EQUAL); 
    composite.addComponent(6, "UTF8Text", StringSerializer.get(), "UTF8Type", ComponentEquality.EQUAL); 
    composite.addComponent(7, lexUUID, UUIDSerializer.get(), "UUIDType", ComponentEquality.EQUAL); 
+0

感謝を!その上に、そのような列ファミリのスキーマはどのように見えるのでしょうか? – tom

+0

DynamicCompositeと呼ばれているので、それを「記述する」ためにスキーマで行うことはできません。このliek – tom

+0

何か: コンパレータのカラムファミリーStateNpaIndexDynamic を作成= 'DynamicCompositeType(S => UTF8Type、L => LongType)' とkey_validation_class = 'UTF8Type' とdefault_validation_class = 'UTF8Type'。 – Patricio

関連する問題