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

How to retrieve node with an input search with Sigmajs and Neo4j ?

我正在尝试检索带有输入搜索字段的节点,但它不起作用。我认为密码查询有误。有人可以帮助我吗?

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);


}})};        

这不是一个 sigma 问题,而是一个 Neo4j 问题。

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

  • 在每个节点上添加标签Node
  • 在每个节点上添加一个 属性 _search,您应该以 小写字母 连接所有要索引的字段
  • 在 属性 _search 上为节点 Node 创建索引:CREATE INDEX ON :Node(_search)

这样您的查询就变成了:

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

我已经更新了我的 jsfiddle:https://jsfiddle.net/sim51/qkc0g58o/69/