我试图与该结构
create class NPassenger
create property NPassenger.name String
create index NPassenger.name on NPassenger (name) NOTUNIQUE_HASH_INDEX
create class NOrder
create property NOrder.order_id String
create property NOrder.passengers linklist NPassenger
create index NOrder.order_id on NOrder (order_id) UNIQUE_HASH_INDEX
insert into NPassenger(name) values ("xxx") // 12:0
insert into NPassenger(name) values ("Alessandro") //12:1
insert into NOrder(order_id,passengers) values ("order 1",[12:0])
insert into NOrder(order_id,passengers) values ("order 2",[12:1])
查询1
explain select from NOrder where passengers contains(name = 'xxx')
查询2
explain select from NOrder where 'xxx' in passengers.name
这两个查询都不使用索引,因为类目标是NOrder。
UPDATE
现在我有50002 NOrder和50002 NPassenger。 如果我执行查询
explain select from NOrder where passengers contains(name = 'xxx')
和
explain select from NOrder where 'xxx' IN passengers.name'
我得到
,这是因为使用的名称字段没有索引(因为目标类是Norder类),然后在Norder类的所有50002记录上进行搜索。
如果我使用的查询
explain select from NPassenger where name = "xxx"
使用索引NPassenger.name因为目标类是NPassenger
你能后的结果,“从NOrder解释选择其中' xxx'乘客。名称“? –