Побитовые операторы в Gremlin

#gremlin #bitwise-operators #azure-cosmosdb-gremlinapi

#gremlin #побитовые операторы #azure-cosmosdb-gremlinapi

Вопрос:

Поддерживает ли Gremlin побитовые операторы в where() (например property amp; flag > 0 )? Может быть, что-то вроде where(bitIsSet('property', 2)) .

Не удалось найти ничего об этом в документах apache, но кажется по меньшей мере странным, что эта базовая операция не будет реализована в Gremlin.

Ответ №1:

Нет — в Gremlin нет таких шагов, которые ведут себя как побитовый оператор. Конечно, вы могли бы использовать лямбда-выражение, если ваш график поддерживает такие вещи (хотя CosmosDB этого не делает):

 gremlin> g.inject([a:-1,b:-1]).filter{(it.get().a amp; it.get().b) > 0}
gremlin> g.inject([a:00111100,b:00001101]).filter{(it.get().a amp; it.get().b) > 0}
==>[a:37440,b:577]
  

кажется по меньшей мере странным, что эта базовая операция не будет реализована в Gremlin.

Да, я полагаю, это просто, но я не думаю, что я когда-либо слышал, чтобы кто-нибудь просил эту функциональность с момента создания проекта. В Gremlin также отсутствуют некоторые другие важные операторы, такие как базовая конкатенация строк и операции с датой — они обязательно должны быть запрошены.