Saya mencoba membuat predikat khusus Regex untuk kueri saya

Saya melihat ini dapat dilakukan dari konsol gremlin seperti di bawah ini

f = {x,y -> x ==~ y}
g.V().has('desc',test(f,/^Dal.*/)).values('desc')

Namun saya bertanya-tanya bagaimana saya bisa membuat predikat khusus di klien Javascript? Saya menggunakan paket npm (https://www.npmjs.com/package/gremlin) dan TypeScript.

0
Zhongmin 3 April 2021, 05:18

1 menjawab

Jawaban Terbaik

Contoh yang Anda temukan berfungsi karena ketika bekerja dengan grafik lokal (tertanam) seperti TinkerGraph, Anda pada dasarnya dapat membuat kelas dan penutupan khusus di Java dan/atau Groovy. Anda dapat menganggap ini sebagai perluasan GREMLIN secara lokal.

Namun, klien JavaScript GREMLIN dirancang untuk bekerja dengan grafik jarak jauh. Banyak penyedia grafik yang dihosting membatasi atau memblokir sepenuhnya penggunaan kode tersebut untuk alasan keamanan. Jika Anda memiliki kendali atas Server GREMLIN yang Anda sambungkan atau penyedia yang Anda gunakan mengizinkan penutupan/lambda maka Anda mungkin dapat memanfaatkannya, lihat [1].

Jika Anda mengontrol Server GREMLIN yang Anda gunakan, Anda berpotensi hanya menambahkan skrip yang membuat predikat khusus di sana dalam file konfigurasi. Untuk kelengkapan untuk membantu orang lain yang menemukan posting ini, saya menyertakan tautan ke diskusi tentang predikat yang saya yakini Anda maksudkan dalam pertanyaan Anda [2].

[1] https://tinkerpop.Apache.org/docs/ saat ini/referensi/#gremlin-javascript-lambda

[2] http://www.kelvinlawrence.net/book/PracticalGremlin.html#pred

1
Kelvin Lawrence 3 April 2021, 14:41