繁体   English   中英

Neo4jClient与关键点

[英]Neo4jClient with keylines

简介:我是Neo4jClient的新手,所以请问我之前提出的问题,请原谅。 但是我一直坚持下去。

我正在尝试做的事情:我正在尝试使用.NET将Neo4j与Keylines连接起来。

原因:首先,我将Neo4j的REST与Jquery AJAX结合使用来执行Return(*),该操作返回了所有数据,包括self,start,end,all_Relationships等的数据和URI。

data: Object
end: "http://localhost:7474/db/data/node/93"
extensions: Object
metadata: Object
properties: "http://localhost:7474/db/data/relationship/4019/properties"
property: "http://localhost:7474/db/data/relationship/4019/properties/{key}"
self: "http://localhost:7474/db/data/relationship/4019"
start: "http://localhost:7474/db/data/node/6"
type: "SENT"

因此,我能够将self用作关键线节点的ID,并将开始和结束URI用作关键线的链接id1和id2。

function queryNeo4j(query) {
        var request = $.ajax({
            type: "POST",
            url: "http://localhost:7474/db/data/cypher",
            contentType: "application/json",
            data: JSON.stringify({ "query": query, "params": {} }),
            success: afterQueryNeo4j
        });
    };
function afterQueryNeo4j(json) {
         console.log(json); // returned data from ajax call
        makeNodes(json);
        makeLinks(json);
        //console.log(items);
        createKeylines(items);
    };
 // populates global var itmes with nodes
    function makeNodes(param) {
        for (i = 0; i < param.data.length ; i++) {
            for (j = 0 ; j < 2 ; j++) {
                var node = {
                    type: 'node',
                    id: param.data[i][j].self,
                    dt: stringToDateConverter(String(param.data[i][1].data.yyyyMMdd)),
                    b: 'rgb(100,255,0)',
                    c: 'rgb(0,0,255)',
                    t: param.data[i][j].data.name,
                    subject: param.data[i][j].data.subject
                };
                items.push(node);
            }
        }
    };

    // populates global var itmes with nodes
    function makeLinks(json) {
        for (i = 0; i < json.data.length; i++) {
            var link = {
                type: 'link',
                id: json.data[i][2].self,
                id1: json.data[i][2].start,
                id2: json.data[i][2].end,
                t: json.data[i][2].metadata.type,
                w: 2,
                c: 'rgb(0,0,255)'
            }
            items.push(link);
        }
    }

使用这种技术,我仅使用客户端Javascript就能够成功绘制关键线图和时间栏。 但是当我在IIS上发布此问题时出现了问题,它给了我跨域错误,这意味着我不得不从服务器代码(C#)调用Neo4j并将其提供给客户端HTML / JS。 那是我发现Neo4jClient的时间。

到目前为止完成:我可以使用C#代码成功读取Neo4j的数据

public class Person
{
    public string name { get; set; }
    public int dob { get; set; }
}
var query = client.cypher
.match(("person:Person"))
.return(person => person.As<Person>());
var result = query.results;
foreach (var i in result)
            {
                Console.WriteLine("people name is:"+i.name);
            }

问题:现在,我只能读取基于我的Cypher Query的数据,但无法读取我的UI需要的其他内容,例如id,self,开始,结束URI和关系。

有没有办法使用neo4jclient获取Return(*)和所有其他元数据? 任何代码都会有所帮助。 我是否应该通过使用JSONP或CORS解决交叉引用错误来坚持客户端ajax调用,因为这要容易得多,但我担心这样做可能会给我带来一些麻烦,因为这不是正确的方法?

我似乎找不到Neo4jClient的任何适当文档。 我在Intellisense中看到很多退货选项,但不知道如何使用。 任何帮助是极大的赞赏。 提前致谢。

您可以将return更改为:

.Return(person => person.As<Node<Person>>());

这将返回包含所有节点优度的Data的包装,这将使您到达那里。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM