Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mesin Amazon Neptune saat ini tidak memiliki dukungan asli penuh untuk semua langkah Gremlin, seperti yang dijelaskan di Menyetel kueri Gremlin. Dukungan saat ini terbagi dalam empat kategori:
Langkah-langkah Gremlin yang selalu dapat dikonversi ke operasi mesin Neptune asli
Langkah Gremlin yang dapat dikonversi ke operasi mesin Neptune asli dalam beberapa kasus
Langkah Gremlin yang tidak pernah dikonversi ke operasi mesin Neptune asli
Langkah-langkah Gremlin yang tidak didukung di Neptune sama sekali
Langkah-langkah Gremlin yang selalu dapat dikonversi ke operasi mesin Neptune asli
Banyak langkah Gremlin dapat dikonversi ke operasi mesin Neptune asli selama mereka memenuhi kondisi berikut:
Mereka tidak didahului di dalam kueri dengan langkah yang tidak dapat dikonversi.
Langkah induk mereka, jika ada, dapat dikonversi,
Semua traversals turunan mereka, jika ada, dapat dikonversi.
Langkah-langkah Gremlin berikut selalu dikonversi ke operasi mesin Neptune asli jika mereka memenuhi kondisi tersebut:
Langkah Gremlin yang dapat dikonversi ke operasi mesin Neptune asli dalam beberapa kasus
Beberapa langkah Gremlin dapat dikonversi ke operasi mesin Neptune asli dalam beberapa situasi tetapi tidak pada situasi lain:
addE( )
— Langkah addE()
umumnya dapat dikonversi ke operasi mesin Neptune asli, kecuali segera diikuti oleh langkahproperty()
yang berisi traversal sebagai kunci.addV( )
— Langkah addV()
umumnya dapat dikonversi ke operasi mesin Neptune asli, kecuali segera diikuti oleh langkahproperty()
yang berisi traversal sebagai kunci, atau kecuali beberapa label ditetapkan.-
aggregate( )
— Langkah aggregate()
umumnya dapat dikonversi ke operasi mesin Neptune asli, kecuali langkah ini digunakan dalam traversal turunan atau sub-traversal, atau kecuali nilai yang disimpan adalah sesuatu selain vertex, edge, id, label atau nilai properti.Dalam contoh di bawah ini,
aggregate()
tidak dikonversi karena sedang digunakan dalam traversal turunan:g.V().has('code','ANC').as('a') .project('flights').by(select('a') .outE().aggregate('x'))
Dalam contoh ini, aggregate( ) tidak dikonversi karena yang disimpan adalah
min()
dari nilai:g.V().has('code','ANC').outE().aggregate('x').by(values('dist').min())
barrier( )
— Langkah barrier()
umumnya dapat dikonversi ke operasi mesin Neptune asli, kecuali langkah yang mengikutinya tidak dikonversi.-
cap( )
— Satu-satunya kasus di mana langkah cap()
dikonversi adalah ketika dikombinasikan dengan langkahunfold()
untuk mengembalikan versi tidak dilipat dari agregat vertex, edge, id, atau nilai poperti. Dalam contoh ini,cap()
akan dikonversi karena diikuti oleh.unfold()
:g.V().has('airport','country','IE').aggregate('airport').limit(2) .cap('airport').unfold()
Namun, jika Anda menghapus
.unfold()
,cap()
tidak akan dikonversi:g.V().has('airport','country','IE').aggregate('airport').limit(2) .cap('airport')
coalesce ()
— Satu-satunya kasus di mana coalesce()
langkah dikonversi adalah ketika mengikuti pola Upsertyang direkomendasikan pada halaman resep. TinkerPop Pola coalesce( ) lainnya tidak diperbolehkan. Konversi terbatas pada kasus di mana semua traversals turunan dapat dikonversi, mereka semua menghasilkan jenis yang sama sebagai output (vertex, edge, id, nilai, kunci, atau label), mereka semua melakukan traversal ke elemen baru, dan mereka tidak mengandung langkah repeat()
.-
constant( )
— Langkah constant( ) saat ini hanya dikonversi jika digunakan dalam bagian sack().by()
dari traversal untuk menetapkan nilai konstan, seperti ini:g.V().has('code','ANC').sack(assign).by(constant(10)).out().limit(2)
-
cyclicPath( )
— Langkah cyclicPath()
umumnya dapat dikonversi ke operasi mesin Neptune asli, kecuali langkah ini digunakan dengan modulatorby()
,from()
, atauto()
. Dalam kueri berikut, misalnya,cyclicPath()
tidak dikonversi:g.V().has('code','ANC').as('a').out().out().cyclicPath().by('code') g.V().has('code','ANC').as('a').out().out().cyclicPath().from('a') g.V().has('code','ANC').as('a').out().out().cyclicPath().to('a')
drop( )
— Langkah drop()
umumnya dapat dikonversi ke operasi mesin Neptune asli, kecuali langkah ini digunakan di dalam langkahsideEffect(
atauoptional()
.-
fold ()
— Hanya ada dua situasi di mana langkah fold () dapat dikonversi, yaitu ketika digunakan dalam pola Upsert yang direkomendasikan pada halaman TinkerPop resep , dan ketika digunakan dalam group().by()
konteks seperti ini:g.V().has('code','ANC').out().group().by().by(values('code', 'city').fold())
-
has ()
— Langkah `has () `umumnya dapat dikonversi ke operasi mesin Neptunus asli yang disediakan kueri dengan `T` menggunakan predikat `P.eq`, `P.neq` atau `P.contains`. Harapkan variasi `has () `yang menyiratkan contoh `P` untuk dikonversi ke native juga, seperti `HasiD ('id1234')` yang setara dengan `has (eq, t.id, 'id1234') `. -
id( )
— Langkah id()
dikonversi kecuali digunakan pada properti, seperti ini:g.V().has('code','ANC').properties('code').id()
-
Mergee ()
— mergeE()
Langkah dapat dikonversi ke operasi mesin Neptunus asli jika parameter (kondisi gabungan,onCreate
danonMatch
) konstan (baik, konstantanull
, atau a).Map
select()
Map
Semua contoh di tepi atas dapat dikonversi. -
MergeV ()
— Langkah mergeV () dapat dikonversi ke operasi mesin Neptunus asli jika parameter (kondisi gabungan, onCreate
danonMatch
) konstan (baik, konstanta, ataunull
a).Map
select()
Map
Semua contoh dalam simpul upserting dapat dikonversi. -
order( )
— Langkah order()
umumnya dapat dikonversi ke operasi mesin Neptune asli, kecuali langkah yang mengikutinya adalah true:-
Langkah
order()
berada dalam traversal turunan nested, seperti ini:g.V().has('code','ANC').where(V().out().order().by(id))
Pengurutan lokal sedang digunakan, seperti misalnya dengan
order(local)
.-
Sebuah pembanding kustom sedang digunakan dalam modulasi
by()
untuk mengurutkan. Contohnya adalah penggunaansack()
ini:g.withSack(0). V().has('code','ANC'). repeat(outE().sack(sum).by('dist').inV()).times(2).limit(10). order().by(sack())
Ada beberapa pengurutan pada elemen yang sama.
-
-
project( )
— Langkah project()
umumnya dapat dikonversi ke operasi mesin Neptune asli, kecuali jumlah pernyataanby()
yang mengikutiproject()
tidak cocok dengan jumlah label yang ditentukan, seperti di sini:g.V().has('code','ANC').project('x', 'y').by(id)
range( )
— Langkah range()
hanya dikonversi ketika ujung bawah rentang yang dimaksud adalah nol (misalnya,range(0,3)
).-
repeat( )
— Langkah repeat()
umumnya dapat dikonversi ke operasi mesin Neptune asli, kecuali di-nested di dalam langkahrepeat()
lain, seperti ini:g.V().has('code','ANC').repeat(out().repeat(out()).times(2)).times(2)
-
sack( )
— Langkah sack()
umumnya dapat dikonversi ke operasi mesin Neptune asli, kecuali dalam kasus berikut:Jika operator sack non-numerik sedang digunakan.
Jika operator sack numerik selain
+
,-
,mult
,div
,min
danmax
sedang digunakan.-
Jika
sack()
digunakan di dalam langkahwhere()
untuk menyaring berdasarkan nilai sack, seperti di sini:g.V().has('code','ANC').sack(assign).by(values('code')).where(sack().is('ANC'))
-
sum( )
— Langkah sum()
umumnya dapat dikonversi ke operasi mesin Neptune asli, tetapi tidak ketika digunakan untuk menghitung penjumlahan global, seperti ini:g.V().has('code','ANC').outE('routes').values('dist').sum()
union ()
— union()
Langkah ini dapat dikonversi ke operasi mesin Neptunus asli selama itu adalah langkah terakhir dalam kueri selain dari langkah terminal.-
unfold ()
— unfold()
Langkah ini hanya dapat dikonversi ke operasi mesin Neptunus asli ketika digunakan dalam pola Upsert yangdirekomendasikan pada TinkerPop halaman resep , dan ketika digunakan bersama dengan seperti ini: cap()
g.V().has('airport','country','IE').aggregate('airport').limit(2) .cap('airport').unfold()
-
where( )
— Langkah where()
umumnya dapat dikonversi ke operasi mesin Neptune asli, kecuali dalam kasus berikut:-
Saat modulasi by( ) digunakan, seperti ini:
g.V().hasLabel('airport').as('a') .where(gt('a')).by('runways')
Ketika operator perbandingan selain
eq
,neq
,within
, danwithout
digunakan.Ketika agregasi yang disediakan pengguna digunakan.
-
Langkah Gremlin yang tidak pernah dikonversi ke operasi mesin Neptune asli
Langkah-langkah Gremlin berikut didukung di Neptune tetapi tidak pernah dikonversi ke operasi mesin Neptune asli. Sebaliknya, mereka dieksekusi oleh server Gremlin.
Langkah-langkah Gremlin yang tidak didukung di Neptune sama sekali
Langkah-langkah Gremlin berikut tidak didukung sama sekali di Neptune. Dalam kebanyakan kasus ini karena mereka memerlukan GraphComputer
, yang saat ini tidak didukung Neptune.
io()
Langkah ini sebenarnya sebagian didukung, karena dapat digunakan untuk read()
dari URL tetapi tidak untukwrite()
.