ご希望のインデックスが可能かどうかはわかりませんが、ポイント 4 のようにすれば、インデックスを定義することが可能です (私はuniqueと定義しましたが、他でも機能します)。
あなたは出来る:
create class Test
create property Test.name string
create property Test.metaData embeddedlist string
insert into Test set name = 'blabla', metaData = ['mya', 'mya2']
CREATE INDEX Test.metaData UNIQUE
insert into Test set metaData = ['mya', 'mya2'] # this will throw an exception
ポイント 3 で尋ねたクエリは次のようになります。
select from Test where 'mya' in metaData
アップデート
また、embeddedmap をインデックス化することもできます。(こちらをご覧ください)
create property Test.metaDataTwo embeddedmap string
create index myIndex on Test (metaDataTwo by value) unique
insert into Test set name = 'blabla', metaDataTwo = {'prop1':'value1', 'prop2':'value2'}
insert into Test set metaDataTwo = {'prop3':'value1'} # this will throw an exception
このようなインデックスを使用するクエリは次のようになります。
select from Test where ( metaDataTwo containskey 'prop1' ) and ( metaDataTwo['prop1'] = 'value1' )