Neo4J为什么告诉我没有勺子?
我用Neo4J代表文本; 在最简单的情况下,文本是由关系LEMMA_TEXTjoin的单词序列。
我试图find一个已知单词后的第N个单词,查询看起来像这样。
MATCH (anchor)-[:LEMMA_TEXT*32]->(word) WHERE id(anchor) = 3275 RETURN word
在一个特定情况下,如果我将path长度增加到33,我得到这个错误:
Neo.DatabaseError.Statement.ExecutionFailure: There is no spoon.
然而,下面的查询返回正确的结果。
MATCH (anchor)-[:LEMMA_TEXT*32]->(word)-[:LEMMA_TEXT]->(next) WHERE id(anchor) = 3275 RETURN next
这表明我想要的节点是存在的并且是可达的。
手册的哪一部分告诉我如何用我的头脑来弯曲勺子? 更重要的是,这实际上是什么意思?!
如果像33这样的数字有什么突破的话,那就意味着有32个限制,为什么是32? 2 ^ 5。
大部分限制都是2倍,MongoDB文档大小不能超过16MB,集合中可以有最大索引,不超过64。
为什么它的工作原理是32,然后是下一个,因为直到32可以在一个操作中实现,最后一个可以看到另一个操作。 但是在一次手术中不可能达到33。
这些限制大部分基本上都是卫生检查,而不是真正的技术边界。
至于为什么它几乎总是2的因素,我想要别人回答,换句话说我不知道。
你有没有尝试拆分登陆和search语句2?
另外你应该添加标签的文字(forormance)
例:
MATCH(主播) WHERE id(锚点)= 3275 锚定 MATCH(锚) - [:LEMMA_TEXT * 32] - >(单词) 返回单词
你得到同样的错误?