0
我正在爲大型專業社交網絡工作,我們正在開始檢查OrientDB是否滿足社交圖譜方面的要求。現在,我們已經成功部署了一個由10個節點組成的集羣,設置備份並將我們從MongoDB到OrientDB的所有數據恢復並填充,而沒有任何重大問題。 我們的數據模型是:OrientDB - 在2級獲取網絡
- 頂點:
- 檔案
- 公司
- 工作
- 出版
- ... 個
- 邊緣:
- 其次:一個配置文件可以按照另一種規範或公司
- 應用:一個配置文件可以應用到發佈工作
- :一個配置文件可以發佈網絡上的一些刊物
- ...
我想知道的是:
- 如何獲得所有的人連接到一個給定的輪廓深度爲1或2。我已經試過類似
SELECT out('Followed').out('Followed') as friend FROM 14:4
,其中14:4是配置對象。不幸的是,它給了我配置文件以及公司,因爲配置文件可以「跟隨」一家公司。我如何篩選才能獲取配置文件?我嘗試過SELECT out('Followed').out('Followed') as friend FROM 14:4 where @class = 'Profile'
,但它不起作用:(我應該有多個邊緣類(FollowedProfile和FollowedCompany)來緩解查詢嗎? - 當配置文件使用其他社交網絡(Facebook,Google,...)創建帳戶時,我們正在存儲他現有的聯繫人並將它們與我們的數據庫匹配,所以我們可以說「Profile A通過Facebook連接到Profile B」。我應該如何在OrientDB中表示?邊緣上的屬性還是專用邊緣類?
- 最後一個是:我怎樣才能得到兩個配置文件之間的最短路徑
非常感謝
1 /我測試過這個,但它不起作用:它不返回任何東西:(請參閱http://s8.postimg。org/4o4fy2mxh/Capture_d_cran_2015_02_10_10_19_33.png所以我測試了一個不同邊界類的解決方案:'Connected'。查詢變成'SELECT distinct(value)as slug from(select expan(out('Connected')。out('Connected')。slug)as slugs FROM 14:4)' – Remi 2015-02-10 09:56:45
哼哼......我不得不用(擴展)函數使這個第一個查詢工作:'SELECT distinct(slug)as slug FROM(SELECT expand(out('Followed').out('Followed'))FROM 14:4)where @class ='Profile' ' – Remi 2015-02-10 10:29:11
我添加了擴展功能 – 2015-02-10 19:15:17