这是我的SDN 4实体:
Say
这是@NodeEntity
public abstract class BaseEntity {
@Index(unique = false)
private Date createDate;
....
}
@NodeEntity
public class Decision extends BaseEntity {
....
}
输出:
:schema
我有以下Cypher查询:
Indexes
ON :BaseEntity(createDate) ONLINE
AFAIK(Neo4j SDN4 entity inheritance and indexes)这样就不会使用Neo4j索引MATCH (d:Decision) WHERE d.createDate={createDate}
,因为我正试图访问d节点:决策标签。
SDN 4是否有办法通过类继承定义索引(在:BaseEntity(createDate)
级别保留createDate
),以便能够在BaseEntity
上使用createDate
索引标签?
答案 0 :(得分:1)
如果查询是派生的查找程序,则它与this issue相关。解决此问题的唯一方法是使用自定义@Query
。
如果查询是自定义@Query
,您只需在查询中使用正确的标签,请注意您可以使用多个标签:
MATCH (d:Decision:BaseNode)
WHERE d.createDate={createDate}
规划人员应该足够聪明,能够做正确的事情并使用索引,但是你应该使用PROFILE
来验证。如果不使用USING INDEX
提示:
MATCH (d:Decision:BaseNode)
USING INDEX d:BaseNode(createDate)
WHERE d.createDate={createDate}