OrientDB-推荐者的匹配查询
我正在尝试使用OrientDB解决一个简单的匹配查询 我会向用户A推荐与用户B相同的产品p 当我尝试此查询时,我收到一个错误,该错误表示“第1行第33列出错” 你有什么建议来解决我的问题吗 谢谢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}
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
)