CQLマップ値としてのタプルとUDT

タプルとUDTをCQLマップ値として使用するための対処方法。

DSE Searchでは、タプルとUDTをCQLマップ値として使用することをサポートしていません。以下の対処方法を使用して、マップのようなデータ・モデルをシミュレートします。

手順

  1. マップ・キーを表す型フィールドを持つタプルまたはUDTのコレクションを宣言します。
    タプル型を作成します。タプル型はタプルとUDTに適用されます。
    CREATE TYPE Address (type text, street text, city text)

    UDTのテーブルを作成します。

    CREATE TABLE Person (name text primary key, addresses set<frozen<address>>)

    または、タプルのテーブルを作成します。

    CREATE TABLE Person (name text primary key, addresses set<frozen<tuple<text, text, text>>>)
  2. このタプルまたはUDTのコレクションをマップのようなデータ・モデルとして使用すると、特定の型(キー)の人物の住所をクエリーすることができます。
    たとえば、自宅の住所がロンドンである人物をクエリーするには、以下のようにします。
    {!tuple}addresses.type:Home AND
    addresses.city:London