首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Joern:不使用新4j-server直接访问图形数据库

Joern:不使用新4j-server直接访问图形数据库
EN

Stack Overflow用户
提问于 2016-11-05 23:51:46
回答 1查看 469关注 0票数 0

joern文档说:

通过在脚本启动时将数据库加载到内存中,可以直接从脚本访问图形数据库。

你怎么能这么做?

在我的代码上运行java -jar $JOERN/bin/joern.jar $CodeDirectory之后,将使用所有这些. is和..db文件创建一个Neo4J数据库目录(.joernIndex)。没有运行访问我的代码服务器的(与python一起使用)有可能吗?(服务器有必要吗?)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-10 12:17:53

这里记录了使用Joern数据库的web接口方式:

http://joern.readthedocs.io/en/latest/import.html

python接口记录在这里:

http://joern.readthedocs.io/en/latest/access.html#python-joern-api

而该方案:

代码语言:javascript
复制
from joern.all import JoernSteps

j = JoernSteps()

j.setGraphDbURL('http://localhost:7474/db/data/')

# j.addStepsDir('Use this to inject utility traversals')

j.connectToDatabase()

res =  j.runGremlinQuery('getFunctionsByName("main")')
res =  j.runCypherQuery('...')

for r in res: print r

基本上是与Neo4J服务器对话的URL方式,这被称为Joern的"REST“。

现在,如果您想“直接”访问数据库,可以使用一些Java程序,如下所示:

将所有Neo4J db加载到内存中

或者是一些蟒蛇,如下所示:

https://neo4j.com/developer/python/

https://marcobonzanini.com/2015/04/06/getting-started-with-neo4j-and-python/

但是底线是,您仍然要启动Neo4J数据库服务器,并且您的程序(通过neo4j驱动程序,使基于网络的通信成为可能)与数据库服务器进行对话。

但是,如果您想直接加载“数据库”文件,自己解析它,并提取出数据,那么它将是困难的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40444542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档