代码之家  ›  专栏  ›  技术社区  ›  alexanoid

Neo4j APOC触发器,手动索引-小写属性值

  •  1
  • alexanoid  · 技术社区  · 7 年前

    我创建了以下Neo4j APOC触发器,它将节点属性添加到手动索引中:

    CALL apoc.trigger.add('CREATE_NODES_TRIGGER', "UNWIND {createdNodes} AS n 
    WITH n WHERE labels(n)[1] IN ['Title','Name','Character'] 
    CALL apoc.index.addNodeByName(labels(n)[1], n, keys(n)) 
    RETURN true", {phase:'before'})
    

    当我执行以下查询时:

    CALL apoc.index.nodes('Character','name:An*') YIELD node AS c, weight 
    RETURN c.name, weight LIMIT 10
    

    它正确返回数据:

    c.name  weight
    "Annette Porter"    1.0
    "Anke Bauernfeind"  1.0
    "Angel's Henchman"  1.0
    "Anna Slovatzka Marshall"   1.0
    "Andrew Horvath"    1.0
    "Angela Somes"  1.0
    "An-Soo 'Alison' Kim"   1.0
    "Annette Holman"    1.0
    "Anita Wilcox"  1.0
    "Anna Cerdick"  1.0
    

    name:an*

    CALL apoc.index.nodes('Character','name:an*') YIELD node AS c, weight 
    RETURN c.name, weight LIMIT 10
    

    结果为空。

    我认为我应该在将属性值添加到索引之前将其小写。我说得对吗?

    如果是这样,请您帮助改进触发器以使属性值小写:

    呼叫apoc.trigger.add('CREATE_NODES_TRIGGER',“展开{createdNodes}为n”
    呼叫apoc.index.addNodeByName(标签(n)[1],n,键(n))
    

    或者,请提出另一种解决这个问题的方法。谢谢!

    我在neo4j.conf中找到了以下属性:

    apoc.autoIndex.enabled=true
    

    并将所有节点添加到索引中:

    CALL apoc.index.addAllNodes('movies',{
      Title: ["primaryTitle", "originalTitle"],
      Name:  ["primaryName"],
      Character: ["name"]}, {autoUpdate:true})
    

    所以,现在我有一个问题:威尔 apoc.autoIndex.enabled=true apoc.index.addAllNodes Title , Name Character 节点也到索引?

    0 回复  |  直到 7 年前
    推荐文章