2016-12-11 19 views
0

セットに含まれていない検索方法を教えてください。 は、私は次のモデルがあるとしましょう:SetColumnを照会

case class ClassRoom(id:String, age:Int, name:String , kids: Set[String]) 
abstract class PersonModel extends CassandraTable[PersonModel, Person] { 
    override def tableName = "ClassRooms" 
    object id extends StringColumn(this) with PartitionKey[String] 
    object age extends DoubleColumn(this) with PrimaryKey[Double] 
    object kids extends SetColumn[String](this) 

私は次のクエリを実行したい悲しいので、カサンドラにエンジンが「マップスタイル」インデックスに基づいています

def findMissing(minAge:Double, kid:String) = select 
.where(_.age > age) 
.and (_.kids not contain kid) 
.fetch() 

答えて

0

NOTオペレータではありません本質的に適切な概念です。おそらくそれはパーティションキーヒットのキーキャッシュのようなものを介して公開される可能性がありますが、セカンダリインデックスのようなものは技術的な現実ではないかもしれません。

まず、が正常に動作するには、object kids extends SetColumn[String](this) with Index[Set[String]]が必要です。したがって、私のセカンダリインデックスについて言及してください。

カーディナリティに基づいて、2次インデックスと通常のCONTAINを使用するか、または別のテーブルに非正規化して保存すると、パフォーマンスが向上する可能性がありますが、 "