Javascript 如何使用Sigmajs和Neo4j通过输入搜索检索节点?

Javascript 如何使用Sigmajs和Neo4j通过输入搜索检索节点?,javascript,neo4j,sigma.js,Javascript,Neo4j,Sigma.js,我正在尝试检索带有inputsearch字段的节点,但它不起作用。我认为密码查询中有一个错误。有人能帮我吗 var inputsearch= document.getElementById('inputsearch').value; var buttonSearch=document.getElementById('buttonsearch'); buttonSearch.addEventListener('click', drawGraph(inputsearch));

我正在尝试检索带有inputsearch字段的节点,但它不起作用。我认为密码查询中有一个错误。有人能帮我吗

var inputsearch= document.getElementById('inputsearch').value;
var buttonSearch=document.getElementById('buttonsearch');    
buttonSearch.addEventListener('click', drawGraph(inputsearch));   




function drawGraph(inputsearch){


    sigma.neo4j.cypher(
      {
        url: 'http://localhost:7474', user: 'neo4j', password: 'neo4j' },

      'match (n)-[r]->(m) where n.data.node.label =~ ".*(?i)'+inputsearch+'.*" return r,m,n;',s
      ,function(s) {
        console.log('Number of nodes :'+ s.graph.nodes().length);
        console.log('Number of edges :'+ s.graph.edges().length);
        for(var i =0;i < s.graph.nodes().length; i++){
          node = s.graph.nodes()[i];
            s.settings('touchEnabled', true);
            s.settings('mouseEnabled', true);


}})};        
var inputsearch=document.getElementById('inputsearch').value;
var buttonSearch=document.getElementById('buttonSearch');
buttonSearch.addEventListener('click',drawGraph(inputsearch));
函数绘图图(inputsearch){
sigma.neo4j.cypher(
{
网址:'http://localhost:7474,用户:'neo4j',密码:'neo4j'},
'匹配(n)-[r]->(m),其中n.data.node.label=~”*(?i)+inputsearch+'.''返回r,m,n;',s
,功能{
log('节点数:'+s.graph.nodes().length);
console.log('边数:'+s.graph.edges().length);
对于(var i=0;i
这不是一个西格玛问题,而是一个Neo4j问题

如果您想这样做,您应该:

  • 在每个节点上添加标签
    节点
  • 在每个节点上添加一个属性
    \u search
    ,在每个节点上,您应该以小写形式连接所有要索引的字段
  • 在属性
    \u search
    上为节点
    节点
    创建索引:
    在:节点上创建索引(\u search)
这样,您的查询就变成:

MATCH (n:Node)-[r]->(m) WHERE n._search CONTAINS $inputsearch RETURN n LIMIT 1

我已经更新了我的JSFIDLE:

您试图用这个密码查询搜索什么?我试图搜索所有在标签中包含我的查询字符串的节点。例如:我写矩阵,得到所有带有矩阵标签的节点,然后我可以双击节点,将其展开。sigmajs上的标签与Neo4j上的标签不同。在您的示例中,您正在搜索标签为
Movie
的节点和值为
Matrix
的属性
title
。对于
个人
节点,属性将不相同(它是
名称
),我理解,但这是一个示例,我希望检索节点,无论标签类别如何(个人、电影)。我可以这样做吗?因为我有很多节点标签,我只希望有一个搜索输入来检索一个节点。我已经尝试过这段代码,它工作得很好,但是节点会立即消失。函数绘图图(inputsearch){sigma.neo4j.cypher(neo4jConfig,'match(n:Ressource)-[r]->(m),其中n.nom=~”(?i)。*'+inputsearch+'.''返回n限制1;',s,applyStyle)};非常感谢@logisima,这对我很有帮助!!