vue结合Neovis.js实现知识图谱的加载

有时候,不是因为你没有能力,也不是因为你缺少勇气,只是因为你付出的努力还太少,所以,成功便不会走向你。而你所需要做的,就是坚定你的梦想,你的目标,你的未来,然后以不达目的誓不罢休的那股劲,去付出你的努力,成功就会慢慢向你靠近。

导读:本篇文章讲解 vue结合Neovis.js实现知识图谱的加载,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

随着互联网不断的发展,传统的关系型数据库如oracle,mysql已经难以支撑现下大数据量,高并发的场景了。于是,NoSQL横空出世,有像cassandra这样的column-based,像MongoDB这样document-based。今天在这里猎奇的是一个graph-based的数据库,Neo4j。

Neovis.js将JavaScript可视化和Neo4j无缝集成。与Neo4j的连接非常简单明了,并且由于它是在Neo4j的属性图模型的基础上构建的,因此 Neovis 的数据格式与数据库保持一致。

之所以使用Neovis.js来实现图谱的加载,是因为后台使用的是Neo4j数据库,在前端正好有对应的js插件可以直接根据后端数据库的数据生成图谱,不需要后台再去进行一些数据的转换,从而生成节点和边的数据再返回前端,前端再用echarts去实现。这样就复杂了。

一、效果:

vue结合Neovis.js实现知识图谱的加载

 二、使用Neovis.js:

这里只讲前端的使用操作,前提是后端已经创建了neovis数据库服务

(1)首先,现在git上下载Neovis.js   https://github.com/neo4j-contrib/neovis.js

(2)下载完成之后就是如下目录

vue结合Neovis.js实现知识图谱的加载

(3) 将dist目录下的neovis.js以及neovis.js.map文件复制出来

vue结合Neovis.js实现知识图谱的加载 

 (4)粘贴到你的vue项目的static文件夹下

 vue结合Neovis.js实现知识图谱的加载

 (5)然后在index.html目录下引入neovis.js,jquery没有引入的话,也需要引入,他会用到jquery

<script src="./static/js/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="./static/neovis.js"></script>

vue结合Neovis.js实现知识图谱的加载(6)然后就是neovis的vue页面,里面一共四个地方需要修改,已经标注。其他的直接复制就行

<template>
    <div class="myDiv">
        <div id="viz"></div>
        Cypher query: <textarea rows="4" cols=50 id="cypher"></textarea><br>
        <input type="submit" value="Submit" id="reload" @click="submit">
        <input type="submit" value="Stabilize" id="stabilize" @click="stabilize">
    </div>
</template>

<script>
export default {
    name: '',
    components: {},
    props: {},
    data() {
        return {
            viz: {} //定义一个viz对象
        }
    },
    mounted() { this.draw() }, //渲染
    methods: {
        submit() { 
            var cypher = $("#cypher").val();
            if (cypher.length > 3) {
                this.viz.renderWithCypher(cypher);
            } else {
                console.log("reload");
                this.viz.reload();

            }
        },
        stabilize() {
            this.viz.stabilize();
        },
        draw() {
            var config = {
                container_id: "viz",
                server_url: "后端neo4j的地址",
                server_user: "neo4j用户名,一般是neo4j",
                server_password: "neo4j密码",
                labels: {
                    //"Character": "name",
                    "Character": {
                        "caption": "name",
                        "size": "pagerank",
                        "community": "community"
                        //"sizeCypher": "MATCH (n) WHERE id(n) = {id} MATCH (n)-[r]-() RETURN sum(r.weight) AS c"
                    }
                },
                relationships: {
                    "INTERACTS": {
                        "thickness": "weight",
                        "caption": false
                    }
                },
                //查询节点的语句,写成你们的
                initial_cypher: "match (n)-[r]->(m) return n,r,m;" 

            };

            this.viz = new NeoVis.default(config);
            this.viz.render();
            console.log(this.viz);
        }
    },
}
</script>
<style lang="less" scoped>
.myDiv {
    width: 800px;
    height: 800px;
}
textarea {
    border: 1px solid lightgray;
    margin: 5px;
    border-radius: 5px;
}
#viz {
    width: 100%;
    height: 80%;
    border: 1px solid #f1f3f4;
    font: 22pt arial;
}
input {
    border: 1px solid #ccc;
}
</style>

完成。。缺点就是自己定义的用户名和密码都暴露在html中,不安全。

想要原生实现的参考博主:Neo4j前端可视化组件Neovis.js使用说明_牧野渔樵的博客-CSDN博客_neovis.js

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/149702.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!