[英]Find most common shared vertices in OrientDB
我目前正在評估OrientDB(2.1.16)作為構建相似性推薦程序的可能解決方案。 為此,我希望獲得一些幫助來編寫可完成以下任務的初始查詢:
Vertex:Maker -(Edge:Produced)-> Vertex:Item -(Edge:TaggedBy)-> Vertex:Tag
(V1)
並得到一個列表其他項目(Vn)
由標簽數目下令共同持有V1
; (V2)
並遍歷Items,以獲得共享標簽的Maker(如果可能,還包括遍歷的Items)的有序列表。 以這種方式,沒有很多有關交叉應用的詳細文檔。 沒有特別的限制。 將有成千上萬的物品和制造者,可能是許多標簽的十倍。
我嘗試了這個小圖示例
我用這個查詢
select item.name, count(tag)from (
select from (
MATCH {
CLASS:Item, AS:item, WHERE: (name<>'v1')
}
.out("TaggedBy"){AS:tag}
return item, tag
) where tag in (
select expand(tag) from (
MATCH {
CLASS:Item, AS:item, WHERE: (name='v1')
}.out("TaggedBy"){AS:tag}
return tag
)
)
) group by item order by count desc
我得到了這個結果
希望能幫助到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.