Neo4j 优化密码查询(自连接)

Neo4j 优化密码查询(自连接),neo4j,cypher,query-optimization,Neo4j,Cypher,Query Optimization,我有下面的自连接查询。在我的测试环境中,LabelBASE大约有21600个节点,速度很慢。如何针对10亿节点这样的更大数据进行优化 MATCH (a:BASE) MATCH (b:BASE {TICKET_ID: a.TICKET_ID}) CREATE (:CALC { X_PRODUCT_ID: a.PRODUCT_ID, X_PRODUCT_DESC: a.PRODUCT_DESC, Y_PRODUCT_ID: b.PRODUCT_ID, Y_PRODUCT_DESC:b.PRODUC

我有下面的自连接查询。在我的测试环境中,Label
BASE
大约有21600个节点,速度很慢。如何针对10亿节点这样的更大数据进行优化

MATCH (a:BASE) 
MATCH (b:BASE {TICKET_ID: a.TICKET_ID})
CREATE (:CALC { X_PRODUCT_ID: a.PRODUCT_ID, X_PRODUCT_DESC: a.PRODUCT_DESC, Y_PRODUCT_ID: b.PRODUCT_ID, Y_PRODUCT_DESC:b.PRODUCT_DESC,  
         X_KPI_UNITS:a.KPI_UNITS,  Y_KPI_UNITS:b.KPI_UNITS, X_KPI_SALES:a.KPI_SALES,  Y_KPI_SALES:b.KPI_SALES, X_PROMO_FLAG:a.PROMO_FLAG, 
         Y_PROMO_FLAG:b.PROMO_FLAG})
我为此查询创建了以下索引:

 create index ON :BASE(TICKET_ID);                                    

因此,通过这个查询,您将创建21600个新节点,这是执行时间的一个因素。a:BASE和b:BASE之间没有关系吗?在第一行中,匹配所有
BASE
节点。您真的必须为所有
BASE
节点的叉积创建节点吗?这背后的逻辑是什么,以及您以后要运行的查询?@Remco no我没有关系。我可以与节点本身建立关系吗?然后我可以匹配关系并将值放入CALC。对吗?@MartinPreusse我想复制具有相同票证id的BASE值,以便在CALC label中创建两个维度。我想知道为了使查询更快,我需要什么样的关系?