CQLマップ値にタプルとUDTを使用する

CQLマップ値にタプルとUDTを使用する際の回避策。

DSE Searchでは、CQLマップ値としてのタプルとUDTの使用はサポートされていません。マップに類似したデータ・モデルをシミュレートするには以下の回避策を使用してください。

手順

  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