OrientDB-推荐者的匹配查询

OrientDB-推荐者的匹配查询,orientdb,orientdb2.2,Orientdb,Orientdb2.2,我正在尝试使用OrientDB解决一个简单的匹配查询 我会向用户A推荐与用户B相同的产品p 当我尝试此查询时,我收到一个错误,该错误表示“第1行第33列出错” 你有什么建议来解决我的问题吗 谢谢 Rob如果在最后一个模式结束时错过了一个:,请尝试以下操作 SELECT d1.UserId, d2.UserId FROM ( MATCH {class:User, as: U1} -buy-> {class:Product, as:P}, {class:User, as: U2}

我正在尝试使用OrientDB解决一个简单的匹配查询

我会向用户A推荐与用户B相同的产品p

当我尝试此查询时,我收到一个错误,该错误表示“第1行第33列出错”

你有什么建议来解决我的问题吗

谢谢
Rob

如果在最后一个模式结束时错过了一个
,请尝试以下操作

SELECT d1.UserId, d2.UserId FROM (
  MATCH 
  {class:User, as: U1} -buy-> {class:Product, as:P},
  {class:User, as: U2} -buy-> {as:P},
  {as:U2} -buy-> {class:Product, as:P2}
  RETURN U1 as d1, U2 as d2, O as o
)

最后,我认为最好的解决办法是

SELECT d1.UserId, d2.UserId FROM (
  MATCH 
  {class:User, as: U1, where: (UserId=12345) } -buy-> {class:Product, as:P},
  {class:User, as: U2, where: (UserId<>12345)} -buy-> {as:OP},
  {as:U2} -buy-> {class:Product, as:P2}
  RETURN U2 as d2, P, OP
)
从中选择d1.UserId和d2.UserId(
匹配
{class:User,as:U1,其中:(UserId=12345)}-buy->{class:Product,as:P},
{class:User,as:U2,其中:(UserId12345)}-buy->{as:OP},
{as:U2}-buy->{class:Product,as:P2}
将U2返回为d2、P、OP
)
谢谢你的帮助


R.

谢谢路易吉的帮助,这是一个可怕的打字错误。无论如何,我已经看到match语句的性能是有限的。你对潜在的改进有什么建议吗?需要多长时间?你的数据库有多大?您没有以任何方式过滤查询,因此您可以期望它扫描所有数据库。。。
SELECT d1.UserId, d2.UserId FROM (
  MATCH 
  {class:User, as: U1, where: (UserId=12345) } -buy-> {class:Product, as:P},
  {class:User, as: U2, where: (UserId<>12345)} -buy-> {as:OP},
  {as:U2} -buy-> {class:Product, as:P2}
  RETURN U2 as d2, P, OP
)