heroku_本月风味– Neo4j和Heroku

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为搜索结果提供了两种可视化效果。 “ Explore”可视化基于Node-Link树 ; 我们使用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

heroku

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/356813.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java object对象的方法_Java常见对象Object类中的个别方法

Java常见对象Object类public int hashCode() : 返回该对象的哈希码值。注意:哈希值是根据哈希算法计算出来的一个值,这个值和地址值有关,但是不是实际地址值。你可以理解成地址值。packagecommon_object;public class Demo extend…

很认真地聊一聊程序员的自我修养

最近看了《浅谈程序员的英语学习》,对于文章中的观点我非常认同,英语是非常重要的,但文章站的高度还是太高,具体表述的学习方法我不是很认同,也认为不太实际,恰好之前有一篇一直没有发表的文章想重新发布&a…

Java设计模式教程

课程大纲 架构和计算机科学中的设计模式是记录特定专业领域中设计问题的解决方案的正式方法。 这个想法是由建筑师Christopher Alexander在建筑领域引入的,并已被改编为其他各种学科,包括计算机科学。 设计模式是在软件设计中给定上下文中对常见问题的通…

java字符串学习_java之字符串学习记录

java之字符串学习记录public class StringDemo {public static void main(String[] args) {//静态初始化字符串String s1 "hello china!";String s3 "Hello China!";System.out.println(s1);//动态初始化字符串String s2 new String("hello china!…

IMPDP导入实例(oracle)

【IMPDP导入实例】: su - oracle sqlplus /nolog conn /as sysdba select * from dba_directories; 开始 通过Xshell连接linux服务器后: Connecting to 10.149.56.40:22... [rootoracle ~]# su - oracle [oracleoracle ~]$ sqlplus /nolog SQL> conn …

java中解密技术是什么_详解Java 加密解密技术的分类和归纳

这篇文章主要介绍了Java加密解密基础分类方法汇总的相关资料,需要的朋友可以参考下Java 加密解密基础:密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学&#xff1b…

三级菜单的三个版本

1.这是我们通过一般方式进行的,就是按照正常的思路来写的,一步一步走 1 #_author:sangshijia2 #date:2016/8/243 menu_map{4 "河南":{5 "郑州":["新密","登封","中牟"],6 "…

java实现细胞自动机_Java自动机实现

java实现细胞自动机这篇文章将解决在Java中实现有限状态机的问题。 如果您不知道什么是FSM或在什么地方可以使用FSM,您可能会热衷于阅读本 , 本和本 。 如果您发现自己在设计上使用FSM的情况,则可能已经开始为实现相同接口的每个状态编写类。…

代理设计模式示例

本文是我们名为“ Java设计模式 ”的学院课程的一部分。 在本课程中,您将深入研究大量的设计模式,并了解如何在Java中实现和利用它们。 您将了解模式如此重要的原因,并了解何时以及如何应用模式中的每一个。 在这里查看 ! 目录 …

调研《构建之法》指导下的历届作品

项目名称:未视APP学校:吉首大学团队:北京必趣科技有限公司 简介:发现未知的视界http://plus.jlu.edu.cn/item.php?id377 延续电影瞬间的感动,发现视界未知的温暖 理由:无优势,很多劣势,可是延续电影瞬间的感动&#x…

java图形旋转动画_Java动画:旋转图像

我将假设您了解如何旋转图像一次.如果你不这样做,你可以通过快速谷歌搜索找到它.您需要的是一个为您旋转它的后台进程.它的工作原理如下:/*** Warning - this class is UNSYNCHRONIZED!*/public class RotatableImage {Image image;float currentDegrees;public Rot…

java golang速度_golang思考之运行速度

有些资料显示golang的运行速度很慢,比Java慢,有时比Python慢。学习吧测试发现golang的运行速度和Java差不多。首先,使用各种语言编写同一个CPU密集的程序sum。C(或C)#include #include #include int main(void){int iN;int64_t jN;scanf(&quo…

java 中的正则表达式_Java中的正则表达式–软介绍

java 中的正则表达式正则表达式是一种可以应用于文本(Java中的String)的模式。 Java提供了java.util.regex包,用于与正则表达式进行模式匹配。 Java正则表达式与Perl编程语言非常相似,并且非常易于学习。 正则表达式匹配文本&…

HTML5移动端触摸事件

工作了近一个月了 因为公司是主要偏向于移动端,开始不懂移动端事件 一直用的click click在安卓端没有什么问题 但在IOS端就有问题了点击之后会延迟半秒 多亏旁边大神指点 原来 iOS上的Safari也支持click 和mouseover等传统的交互事件,只是不推荐在iOS…

用java写的教职工信息管理系统_基于Java的教师信息管理系统的设计与实现论文.doc...

基于Java的教师信息管理系统的设计与实现论文职场大变样社区():下载毕业设计成品全套资料,全部50元以下毕业设计(论文)任务书第1页毕业设计(论文)题目:基于java的教师信息管理系统的设计与实现毕业设计(论文)要求及原始数据(资料)&#xff1a…

春云边车

我有一个部署到基于NetflixOSS的云的应用程序,该应用程序具有以下结构: 本质上是一种将信息持久保存到Cassandra群集的服务。 所有应用程序都已注册到Eureka –因此,在本例中,该服务以及Cassandra节点都已在Eureka中注册&#xf…

java json写入内存_如何在客户端上减少JSON.stringify使用的内存量?

使用JSON.stringify将大型javascript对象转换为字符串时,有没有办法减少客户端上的内存使用量?我正在寻找解决下面问题的东西,但是对于客户端上的javascript .当我尝试一个简单的JSON.stringify(big_object)时,它会迅速占用所有RA…

GridView的一些常用属性:

GridView的一些常用属性:android:numColumns”auto_fit” //GridView的列数设置为自动android:columnWidth”90dp " //每列的宽度,也就是Item的宽度android:stretchMode”columnWidth" //缩放与列宽大小同步android:verticalSpacing…

activemq端口好_ActiveMQ已准备好黄金时段

activemq端口好ActiveMQ项目始于2005年-在很大程度上,它一直是Apache Software Foundation的顶级项目。 ActiveMQ项目的目的一直是提供世界一流的企业消息传递解决方案,使经纪人能够提供从支持IP的智能设备一直到企业后端的高可用性的连通性。 ActiveMQ提…

js创建节点,小试牛刀

实现如下的功能 非常简单的一个小训练。 思想&#xff1a; 1.首先创建text和一个button 代码如下、 1 <body> 2 <input type"text" id"text1"/> 3 <input id"btn1" type"button" value"创建" /> 4 <u…