我試圖與該結構
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'乘客。名稱「? –