本月風味– Neo4j和Heroku

Neo4j今年早些時候發起了一項挑戰,即“ 種子播云 ”,以使人們使用Neo4j附加組件在Heroku上創建模板或演示應用程序。 經過許多內部辯論之后,我決定進入,但由于缺乏想法而陷入絕望。 當我什么都沒做的時候,這個主意就出現了。我創建了一個簡單的應用程序,可以幫助人們找到口味相輔相成的原料。

基本上,您可以將這些配料很好地搭配在一起-知道哪種配料具有風味親和力,可以制作出一些令人贊嘆的新菜。
該應用程序允許您添加具有“親和力”的配對-它們配對的程度如何-并搜索成分以查找與之配對的其他成分。

該應用程序是使用Grails 2.0前端構建的,可視化是非常簡潔的d3.js庫的結果,并且與Neo4j的交互是通過Neo4j REST Api完成的。
整個程序都部署在Heroku(帶有Neo4j附加組件)上,而源代碼可以在github上找到。
要開始使用Grails 2.0,Neo4j附加組件和Heroku,請閱讀有關主題的Aldrins帖子: http ://thought-bytes.blogspot.in/2012/02/grails-20-heroku-and-neo4j-addon.html

自述文件中介紹了如何在本地以及在Heroku上部署Flavorwocky。

該模型非常適合于圖表-如您所見,它非常簡單:

每個類別都有顏色編碼-為方便起見,它作為屬性存儲在類別節點上,但是當然不必如此。

Flavorwocky也被選為該挑戰的基礎,因為它是圖形的真實世界用例,我希望本條目真正專注于Neo4j,而不是支持風鈴。

設定
當應用程序啟動時,我們檢查數據庫是否為空。 為此,我們從參考節點執行遍歷 ,以查找與其連接的任何類別。 如果沒有,則我們先創建類別集,方法是先創建類別的節點 ,然后創建與參考節點的關系 。 我們還創建索引 “成分”,該索引用于索引成分名稱。 源代碼: https : //github.com/luanne/flavorwocky/blob/master/grails-app/conf/BootStrap.groovy

添加配對:
添加配對涉及

  • 檢查任一節點是否已經存在以避免重新創建它
  • 創建兩個節點并將它們在單個事務中鏈接到其類別
  • 在上面的同一筆交易中創建它們之間的關系

為此,我們使用了批處理操作 (注意,這仍然是實驗性的)。

來源: https : //github.com/luanne/flavorwocky/blob/master/grails-app/controllers/com/herokuapp/flavorwocky/FlavorwockyController.groovy (fetchOrCreateNodes())

自動完成 :這只是一個索引查找 ,其名稱匹配部分輸入的成分。 來源: https : //github.com/luanne/flavorwocky/blob/master/grails-app/controllers/com/herokuapp/flavorwocky/FlavorwockyController.groovy (autosearch())

可視化:
我們使用d3.js為搜索結果提供了兩種可視化效果。 “探索”可視化基于節點鏈接樹 ; 我們使用Cypher查詢來查找與所搜索成分配對的所有成分(最多3個層次),將其轉換為適當的數據結構,并將其呈現為JSON。 請注意,盡管可視化是交互式的,但數據獲取不是。 一次可以獲取3個級別的整個數據集-將來的增強功能是僅在擴展節點時才可以獲取子級。

來源: https : //github.com/luanne/flavorwocky/blob/master/grails-app/controllers/com/herokuapp/flavorwocky/FlavorwockyController.groovy (getSearchVisualizationAsTreeJson())

盡管這棵樹很漂亮,但缺點是它是一棵樹,因此,如果孩子彼此鏈接,那么您會在樹中看到該成分的多個實例。 因此,我們嘗試了另一種可視化方法來捕獲成分之間的相互關系,并且還捕獲了有趣的事實(例如風味三重奏)-如果您在網絡可視化中看到一個三角形,則這三種成分可以很好地結合在一起的可能性很高。

為此,我們使用了力導向圖 。 同樣, Cypher查詢可以解決這個問題(這次深入了5個級別以生成更豐富的模型)。

來源: https : //github.com/luanne/flavorwocky/blob/master/grails-app/controllers/com/herokuapp/flavorwocky/FlavorwockyController.groovy (getSearchVisualizationAsNetworkJson())

在兩個示例中,配對的親和力用于計算成分之間連接器的長度,這表明較短的連接具有比較長連接的成分更好的配對。

就是這樣! 這個應用程序可以做很多事情,但是需要等待一些時間。

如果您喜歡Flavorwocky ,或者只想讓我贏,請發布有關Flavorwocky的 推文 。 投票也有幫助!

參考: 本月風味-用于Heroku的Neo4j附加組件和本月 風味-Neo4j和Heroku,是我們JCG合作伙伴的第二部分 ? Thought Bytes博客上的Aldrin和Luanne Misquitta。


翻譯自: https://www.javacodegeeks.com/2012/02/flavor-of-month-neo4j-and-heroku.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/373388.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/373388.shtml
英文地址,請注明出處:http://en.pswp.cn/news/373388.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

1 + 11 + 1111+ 11111+ ..... + 11111(2016個) 結果是幾位數

# -*- coding: utf-8 -*- """ Created on Mon Mar 21 20:38:06 2016author: yanjie """1 11 1111 11111 ..... 11111(2016個) 結果是幾位數 用什么數據結構 有幾個6 寫算法a []; m 0; six 0; for i in range(2016,0,-1):b (im) % 10;m (…

[回歸分析][10]--相關誤差的問題

[回歸分析][10]--相關誤差的問題這一篇文章還是來分析相關誤差的問題。 1.游程數 定義:游程數--殘差穿過x-軸的次數 用這個可以檢查如殘差有一塊在x軸上面,一塊在x軸下面的情形。 如上面這樣的殘差 下面構造兩個統計量: 其中 n…

Spring 3 MVC異常處理程序

我遇到的大多數Spring 3錯誤處理示例代碼似乎都提供了其用法的最簡單概述,但是,有人說,如何處理錯誤比正常代碼的工作方式更為重要。 前一天,當我在Spring(2)錯誤處理程序中遇到一個簡單的GOTCHA時&#xf…

java編譯找不到符號_javac編譯時找不到符號?

我是個新手,在linux使用java編程時,出現這個情況。我把要引的包放在classpath中,紅色部分:export CLASSPATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$HADOOP_HOME/hadoop-1.0.4.core.jar:${CLASSPATH}通過echo $CLASSP…

全備份、差異備份和增量備份概念詳述

全備份、差異備份和增量備份概念詳述 1、完全備份(Full Backup) 備份全部選中的文件夾,并不依賴文件的存檔屬性來確定備份那些文件。在備份過程中,任何現有的標記都被清除,每個文件都被標記為已備份。換言之&#xff0…

微信接入登錄功能access_token流程記錄

提示:只有認證過的訂閱號或者服務號才能獲取access_token。 1.app微信登錄第一步是,app調起來微信客戶端,通過app端的配置,引入一個微信類庫, 2.授權成功后,微信會返回你一個code。 將APP_ID替換成你在微信…

使用MVC模式制作游戲-教程和簡介

游戲開發中一種有用的體系結構模式是MVC(模型視圖控制器)模式。 它有助于分離輸入邏輯,游戲邏輯和UI(渲染)。 在任何游戲開發項目的早期階段,其實用性很快就會被注意到,因為它允許快速更改內容&…

boost

參考博客 http://www.cnblogs.com/lidabo/p/3805487.html http://www.cppblog.com/Robertxiao/archive/2013/01/06/197022.html http://www.cnblogs.com/finallyliuyu/archive/2013/05/23/3094246.html http://www.cnblogs.com/lidabo/p/3782193.html http://www.cnblogs.com/z…

moment格式換時間_不一樣的日期、時間轉換(moment.js)

無意中遇到了一種很奇怪的日期格式,從接口中返回的日期是這樣的,如 2018-02-06T11:59:2208:00 。然而這卻不是我們想要的,我們要的是這種,YYYY-MM-DD HH:mm:ss。那么這種是怎么轉換的呢?這時候就可以使用一款很好用的日…

并發模式:生產者和消費者

在我15年的職業生涯中,生產者和消費者的問題是我僅遇到過幾次。 在大多數編程情況下,我們正在做的事情是以同步方式執行功能,其中JVM或Web容器自行處理多線程的復雜性。 但是,在編寫某些需要的用例時。 上周,我遇到了一…

POJ 1006 - Biorhythms (中國剩余定理)

B - BiorhythmsTime Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u Submit Status Practice POJ 1006Description 人生來就有三個生理周期,分別為體力、感情和智力周期,它們的周期長度為23天、28天和33天。每一個周期中…

子線程中更新UI線程的三個方法

1、通過handler方式,sendmessage。 多個類間傳遞比較麻煩,也懶的寫... 2、線程中通過runOnUiThread() new Thread() { public void run() { //這兒是耗時操作,完成之后更新UI; runOnUiThread(new Runnab…

mysql limit acs_mysql查詢操作

簡單查詢&#xff1a;select * from 表名;避免重復&#xff1a;select distinct 字段 from 表名;條件查詢&#xff1a;select 字段,字段 from 表名 where id<5(條件);四則運算查詢&#xff1a;select id,dep_id,id*dep_id from company.employee5 where id<5;定義顯示格式…

作業管理系統數據字典

轉載于:https://www.cnblogs.com/heyangcan/p/5312394.html

使用Hive和iReport進行大數據分析

每個JJ Abrams的電視連續劇疑犯追蹤從主要人物芬奇先生一個下列敘述情節開始&#xff1a;“ 你是被監視。 政府擁有一個秘密系統-每天每天每小時都會對您進行監視的機器。 我知道是因為...我建造了它。 “當然&#xff0c;我們的技術人員知道得更多。 龐大的電氣和軟件工程師團…

docker集群管理

docker集群管理 ps&#xff1a;docker machine docker swarm docker compose 在Docker Machine發布之前&#xff0c;你可能會遇到以下問題&#xff1a; 你需要登錄主機&#xff0c;按照主機及操作系統特有的安裝以及配置步驟安裝Docker&#xff0c;使其能運行Docker…

從0學java_從零開始學JAVA(一.Java的基礎語法)

基本語法編寫 Java 程序時&#xff0c;應注意以下幾點&#xff1a;大小寫敏感&#xff1a;Java 是大小寫敏感的&#xff0c;這就意味著標識符 Hello 與 hello 是不同的。類名&#xff1a;對于所有的類來說&#xff0c;類名的首字母應該大寫。如果類名由若干單詞組成&#xff0c…

linux mount (掛載命令)詳解

掛接命令(mount) 首先&#xff0c;介紹一下掛接(mount)命令的使用方法&#xff0c;mount命令參數非常多&#xff0c;這里主要講一下今天我們要用到的。 命令格式&#xff1a;mount [-t vfstype] [-o options] device dir 其中&#xff1a; 1.-t vfstype 指定文件系統的類型&…

Android官方培訓課程中文版(v0.9.5)

http://hukai.me/android-training-course-in-chinese/index.html轉載于:https://www.cnblogs.com/xiaoyao095/p/6125715.html

使用SaxParser和完整代碼進行XML解析

SAX解析器使用回調函數&#xff08;org.xml.sax.helpers.DefaultHandler&#xff09;通知客戶端XML文檔結構。 您應該擴展DefaultHandler并重寫一些方法來實現xml解析。 覆蓋的方法是 startDocument&#xff08;&#xff09;和endDocument&#xff08;&#xff09;–在XML文檔…