OrientDB - 查找顶点的相关项

时间:2017-08-31 21:13:44

标签: orientdb traversal

我们正在构建一个系统,用于审核用户的搜索(以及用户的其他操作)。我们将跟踪User1搜索Term1等数据。有一个叫做“搜索”的边缘。用户和术语顶点之间。我们试图找到的是一些相关信息,例如搜索Term1的用户也搜索了这些术语(Term2,Term3等)以及可能在用户和术语之间的一些其他相关信息,例如"您可能知道这些用户&#34 ;。我猜测需要进行遍历,但我想知道的是,遍历的深度是否重要并且会告诉我们想要的数据。如果我们走向遍历路线,在失去实际相关性之前我们设置了多深?

到目前为止,这是我们拼凑的内容,但我们并不完全确定它是否是正确的方法。

SELECT $depth, * FROM (TRAVERSE * FROM (SELECT FROM Searched where q = 'al') STRATEGY BREADTH_FIRST ) WHERE @class in ['Term']

更新:到目前为止我最终得到的是以下查询。它会告诉我其他用户搜索的内容以及计算了多少次。所以我根据顶点的接近程度和搜索的次数来排序。我觉得这应该有希望提供一个相当好的样本,其他用户正在搜索那些也搜索该术语。

SELECT $depth, q, in().size() AS count  FROM (TRAVERSE * FROM (select from Term where q.toLowerCase() = 'aluminum') STRATEGY BREADTH_FIRST) WHERE @class = 'Term' AND $depth <> 0 ORDER BY $depth ASC, count DESC

0 个答案:

没有答案