タプルとUDTをCQLマップ値として使用するための対処方法。
DSE Searchでは、タプルとUDTをCQLマップ値として使用することをサポートしていません。以下の対処方法を使用して、マップのようなデータ・モデルをシミュレートします。
手順
-
マップ・キーを表す型フィールドを持つタプルまたは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>>>)
-
このタプルまたはUDTのコレクションをマップのようなデータ・モデルとして使用すると、特定の型(キー)の人物の住所をクエリーすることができます。
たとえば、自宅の住所がロンドンである人物をクエリーするには、以下のようにします。
{!tuple}addresses.type:Home AND
addresses.city:London