Indexing 在Neo4j中索引有问题

Indexing 在Neo4j中索引有问题,indexing,neo4j,cypher,Indexing,Neo4j,Cypher,我有一个包含以下详细信息的数据集: 140万个节点 290万关系 1500万处房产(包括性别、姓名、订户id等) 1关系类型(已联系) 我已经使用批处理将数据导入到我机器上的数据库(64位、16核、16 GB RAM) 我试图在订户ID上索引这些节点,但我不确定我在做什么 我跑 start n = node(*) set n:Subscribers 我的理解是,这会为每个节点创建一个标签(是否正确) 接着我跑了 create index on :Subscribers(SUBSCRIBER

我有一个包含以下详细信息的数据集:

  • 140万个节点
  • 290万关系
  • 1500万处房产(包括性别、姓名、订户id等)
  • 1关系类型(已联系)
我已经使用批处理将数据导入到我机器上的数据库(64位、16核、16 GB RAM)

我试图在订户ID上索引这些节点,但我不确定我在做什么

我跑

start n = node(*) set n:Subscribers
我的理解是,这会为每个节点创建一个标签(是否正确)

接着我跑了

create index on :Subscribers(SUBSCRIBER_ID)
我认为应该为属性“SUBSCRIBER\u ID”上带有“Subscribers”标签的所有节点创建一个索引。(对吗?)

现在当我去Neo4j sh跑步时

neo4j-sh (?)$ schema
==> Indexes
==>   ON :Subscribers(SU_SUBSCRIBER_ID) ONLINE  
==> 
==> No constraints
但是当我运行下面的程序时,它说没有为节点设置索引

neo4j-sh (?)$ index --indexes
==> Node indexes:
==> 
==> Relationship indexes: 
我有几个问题

  • 我是否必须告诉它对现有数据进行索引?如果是,我该怎么办 那个
  • 那么我如何使用索引呢?我已经通读了这本书 文档,但我在遵循它时遇到了一些麻烦
  • 看起来 就像我可以在运行批导入时设置索引一样 脚本,但我真的不明白如何。。。有人能解释一下吗 求你了
  • 以下是我的数据示例:

    Nodes.txt

    id  SU_SUBSCRIBER_ID    CU_FIRST_NAME   gender  SU_AGE
    0   123456                       Ann    F        56
    1   832746                         ?    UNKNOWN  -1
    2   546765                       Tom    UNKNOWN  -1
    3   768345                     Anges    F        72
    4   267854                  Aoibhlinn   F        38
    
    rels.csv

    start   end rel counter 
    0            3  CONTACTED   2
    1            2  CONTACTED   1
    1            4  CONTACTED   1
    3            2  CONTACTED   2
    4            1  CONTACTED   1
    

    schema
    是查看的正确命令

    Cypher将标签索引自动用于
    合并
    匹配

    对于Java核心API,您将使用
    db.findNodesByBelandProperty(标签、属性、值)

    你做了正确的事,除了一件。您可以在执行批导入时在节点上创建标签

    只需在CSV文件中添加一个
    l:label
    字段,该字段包含每个节点的逗号分隔标签列表。如该分支上的自述所示